// Copyright 2012 Georg-August-Universität Göttingen, Germany // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package de.ugoe.cs.autoquest.plugin.html.commands; import static org.junit.Assert.*; import java.util.Arrays; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import org.junit.Before; import org.junit.Test; import de.ugoe.cs.autoquest.eventcore.guimodel.GUIElementFactory; import de.ugoe.cs.autoquest.eventcore.guimodel.GUIElementGroup; import de.ugoe.cs.autoquest.eventcore.guimodel.GUIModel; import de.ugoe.cs.autoquest.eventcore.guimodel.GUIModel.Traverser; import de.ugoe.cs.autoquest.eventcore.guimodel.GUIModelException; import de.ugoe.cs.autoquest.eventcore.guimodel.IGUIElement; import de.ugoe.cs.autoquest.eventcore.guimodel.IGUIElementSpec; import de.ugoe.cs.autoquest.plugin.html.guimodel.HTMLDocument; import de.ugoe.cs.autoquest.plugin.html.guimodel.HTMLDocumentSpec; import de.ugoe.cs.autoquest.plugin.html.guimodel.HTMLPageElement; import de.ugoe.cs.autoquest.plugin.html.guimodel.HTMLPageElementSpec; import de.ugoe.cs.autoquest.plugin.html.guimodel.HTMLServer; import de.ugoe.cs.autoquest.plugin.html.guimodel.HTMLServerSpec; import de.ugoe.cs.util.console.GlobalDataContainer; import de.ugoe.cs.util.console.TextConsole; /** *
* TODO comment *
* * @author Patrick Harms */ public class CMDcondenseHTMLGUIModelTest { /** * */ @Before public void setUp() { new TextConsole(); } /** * */ @Test public void test_condense_01() throws Exception { String[] guiSpec = { "/server/doc1/html/body/div_0" }; GUIModel guiModel = generateGUIModel(guiSpec); GlobalDataContainer.getInstance().addData("sequences_targets", guiModel); executeCommand(); String[] assertionSpec = { "/server/doc1/html/body/div" }; assertGUIModel(guiModel, assertionSpec); } /** * */ @Test public void test_condense_02() throws Exception { String[] guiSpec = { "/server/doc1/html/body/div_0", "/server/doc1/html/body/div_1", "/server/doc1/html/body/div_2", "/server/doc1/html/body/div_3"}; GUIModel guiModel = generateGUIModel(guiSpec); GlobalDataContainer.getInstance().addData("sequences_targets", guiModel); executeCommand(); String[] assertionSpec = { "/server/doc1/html/body/div", "/server/doc1/html/body/div_1", "/server/doc1/html/body/div_2", "/server/doc1/html/body/div_3" }; assertGUIModel(guiModel, assertionSpec); } /** * */ @Test public void test_condense_03() throws Exception { String[] guiSpec = { "/server/doc1/html/body/div_0", "/server/doc1/html/body/div_1", "/server/doc2/html/body/div_2", "/server/doc2/html/body/div_3"}; GUIModel guiModel = generateGUIModel(guiSpec); GlobalDataContainer.getInstance().addData("sequences_targets", guiModel); executeCommand(); String[] assertionSpec = { "/server/doc1/html/body/group_doc1/div", "/server/doc1/html/body/group_doc1/div_1", "/server/doc1/html/body/group_doc2/div_2", "/server/doc1/html/body/group_doc2/div_3" }; assertGUIModel(guiModel, assertionSpec); } /** * */ @Test public void test_condense_04() throws Exception { String[] guiSpec = { "/server/doc1/html/body/div", "/server/doc1/html/body/div_1", "/server/doc2/html/body/div", "/server/doc2/html/body/div_1"}; GUIModel guiModel = generateGUIModel(guiSpec); GlobalDataContainer.getInstance().addData("sequences_targets", guiModel); executeCommand(); String[] assertionSpec = { "/server/doc1/html/body/div", "/server/doc1/html/body/div_1" }; assertGUIModel(guiModel, assertionSpec); } /** * */ @Test public void test_condense_05() throws Exception { String[] guiSpec = { "/server/doc1/html/body/div", "/server/doc1/html/body/div_1", "/server/doc2/html/body/div", "/server/doc2/html/body/div_2"}; GUIModel guiModel = generateGUIModel(guiSpec); GlobalDataContainer.getInstance().addData("sequences_targets", guiModel); executeCommand(); String[] assertionSpec = { "/server/doc1/html/body/div", "/server/doc1/html/body/group_doc1/div_1", "/server/doc1/html/body/group_doc2/div_2" }; assertGUIModel(guiModel, assertionSpec); } /** * */ @Test public void test_condense_06() throws Exception { String[] guiSpec = { "/server/doc1/html/body/div/div_1", "/server/doc1/html/body/div/div_2", "/server/doc1/html/body/div/div_3", "/server/doc1/html/body/div/div_4", "/server/doc1/html/body/div/div_5", "/server/doc1/html/body/div/div_6", "/server/doc2/html/body/div/div_1", "/server/doc2/html/body/div/div_2", "/server/doc2/html/body/div/div_7", "/server/doc2/html/body/div/div_8", "/server/doc2/html/body/div/div_6", "/server/doc3/html/body/div/div_9", "/server/doc3/html/body/div/div_10", "/server/doc3/html/body/div/div_6", "/server/doc3/html/body/div/div_11", "/server/doc4/html/body/div/div_12", "/server/doc4/html/body/div/div_13", "/server/doc5/html/body/div/div_4", "/server/doc5/html/body/div/div_11" }; GUIModel guiModel = generateGUIModel(guiSpec); GlobalDataContainer.getInstance().addData("sequences_targets", guiModel); executeCommand(); String[] assertionSpec = { "/server/doc1/html/body/div/group_doc1doc2doc3/group_doc1doc2/div_1", "/server/doc1/html/body/div/group_doc1doc2doc3/group_doc1doc2/div_2", "/server/doc1/html/body/div/group_doc1doc2doc3/group_doc1doc2/group_doc1/div_3", "/server/doc1/html/body/div/group_doc1doc2doc3/group_doc1doc2/group_doc1/div_5", "/server/doc1/html/body/div/group_doc1doc2doc3/group_doc1doc2/group_doc2/div_7", "/server/doc1/html/body/div/group_doc1doc2doc3/group_doc1doc2/group_doc2/div_8", "/server/doc1/html/body/div/group_doc1doc2doc3/div_6", "/server/doc1/html/body/div/group_doc1doc5/div_4", "/server/doc1/html/body/div/group_doc3doc5/div_11", "/server/doc1/html/body/div/group_doc3doc5/group_doc3/div_9", "/server/doc1/html/body/div/group_doc3doc5/group_doc3/div_10", "/server/doc1/html/body/div/group_doc4/div_12", "/server/doc1/html/body/div/group_doc4/div_13" }; assertGUIModel(guiModel, assertionSpec); } /** ** TODO: comment *
* * @param guiSpec * @return * @throws GUIModelException * @throws IllegalArgumentException */ private GUIModel generateGUIModel(String[] guiSpec) throws IllegalArgumentException, GUIModelException { GUIModel model = new GUIModel(true); Map* TODO: comment *
* */ private void executeCommand() { CMDcondenseHTMLGUIModel command = new CMDcondenseHTMLGUIModel(); List