[mapguide-commits] r8767 - in trunk/MgDev/UnitTest/Acceptance: . tests/ajax

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Fri Sep 25 05:45:42 PDT 2015


Author: jng
Date: 2015-09-25 05:45:42 -0700 (Fri, 25 Sep 2015)
New Revision: 8767

Added:
   trunk/MgDev/UnitTest/Acceptance/tests/ajax/legend.js
Modified:
   trunk/MgDev/UnitTest/Acceptance/package.json
   trunk/MgDev/UnitTest/Acceptance/readme.txt
Log:
#2573: Add functional tests for the AJAX viewer legend

Modified: trunk/MgDev/UnitTest/Acceptance/package.json
===================================================================
--- trunk/MgDev/UnitTest/Acceptance/package.json	2015-09-24 13:43:30 UTC (rev 8766)
+++ trunk/MgDev/UnitTest/Acceptance/package.json	2015-09-25 12:45:42 UTC (rev 8767)
@@ -8,6 +8,7 @@
     "iedriver": "^2.47.0",
     "nightwatch": "^0.7.11",
     "nightwatch-html-reporter": "^1.0.2",
+    "node-resemble-js": "0.0.4",
     "selenium-server-standalone-jar": "^2.47.1"
   }
 }

Modified: trunk/MgDev/UnitTest/Acceptance/readme.txt
===================================================================
--- trunk/MgDev/UnitTest/Acceptance/readme.txt	2015-09-24 13:43:30 UTC (rev 8766)
+++ trunk/MgDev/UnitTest/Acceptance/readme.txt	2015-09-25 12:45:42 UTC (rev 8767)
@@ -20,6 +20,10 @@
 Run "npm install" to install the required node dependencies
     - Nightwatch.js
     - Nightwatch.js HTML reporter
+    - Selenium
+        - Standalone Driver
+        - IE Driver
+        - Chrome Driver
 
 Ensure that MapGuide is running and the Sheboygan dataset has been loaded
 
@@ -36,6 +40,8 @@
     - tag: A series of tagged test suites (specify a --tag for each tag), which can be:
         - ajax (all suites)
             - navigation
+            - ui
+            - tools
         - fusion (all suites)
 
 Parallel test execution

Added: trunk/MgDev/UnitTest/Acceptance/tests/ajax/legend.js
===================================================================
--- trunk/MgDev/UnitTest/Acceptance/tests/ajax/legend.js	                        (rev 0)
+++ trunk/MgDev/UnitTest/Acceptance/tests/ajax/legend.js	2015-09-25 12:45:42 UTC (rev 8767)
@@ -0,0 +1,115 @@
+var settings = require("../settings");
+var helper = require("../helper");
+var wl = require("./weblayout");
+
+module.exports = {
+    tags: ["ajax", "legend"],
+    beforeEach: function(browser) {
+        helper.setDefaultBrowserSize(browser);
+    },
+    'LEGEND001 - Toggle Group': function (client) {
+        client.url(settings.getAjaxViewerUrl())
+            .waitForElementPresent("#taskFrame", 5000, true)
+            //NOTE: For nested frames, you have to navigate down each frame individually. This is a selenium problem
+            .frame("taskFrame")
+                .waitForElementPresent("frame[name='taskPaneFrame']", 5000, true)
+                .frame("taskPaneFrame")
+                    .waitForElementVisible("table.RegText", 5000, true)
+                    .assert.containsText("table.RegText td.Title", "Overview")
+                .frame(null)
+            .frame(null)
+            .frame("mapFrame")
+                .waitForElementVisible("#LegendCtrl", 5000, true)
+                .frame("LegendCtrl")
+                    .waitForElementPresent("frame[name='legendUiFrame']", 5000, true)
+                    .frame("legendUiFrame")
+                        .useXpath()
+                            //Base Map group checkbox node
+                            .moveToElement("//div[@id='Tree']/div[1]/table/tbody/tr[1]/td[2]/img", 10, 10)
+                            .mouseButtonClick(0)
+                            .pause(3000) //Breathe for rendering
+                            //Snapshot and baseline compare
+                            .saveScreenshot(helper.screenshotName(client, "Ajax - LEGEND001 - 001 - Base Map Group turned off"))
+                            .mouseButtonClick(0)
+                            .pause(3000) //Breathe for rendering
+                            //Snapshot and baseline compare
+                            .saveScreenshot(helper.screenshotName(client, "Ajax - LEGEND001 - 002 - Base Map Group turned back on"))
+                        .useCss()
+                    .frame(null)
+                .frame(null)
+            .frame(null)
+            .end();
+    },
+    'LEGEND002 - Toggle Layer': function (client) {
+        client.url(settings.getAjaxViewerUrl())
+            .waitForElementPresent("#taskFrame", 5000, true)
+            //NOTE: For nested frames, you have to navigate down each frame individually. This is a selenium problem
+            .frame("taskFrame")
+                .waitForElementPresent("frame[name='taskPaneFrame']", 5000, true)
+                .frame("taskPaneFrame")
+                    .waitForElementVisible("table.RegText", 5000, true)
+                    .assert.containsText("table.RegText td.Title", "Overview")
+                .frame(null)
+            .frame(null)
+            .frame("mapFrame")
+                .waitForElementVisible("#LegendCtrl", 5000, true)
+                .frame("LegendCtrl")
+                    .waitForElementPresent("frame[name='legendUiFrame']", 5000, true)
+                    .frame("legendUiFrame")
+                        .useXpath()
+                            //Hydrograpy checkbox node
+                            .moveToElement("//div[@id='Tree']/div[1]/div[1]/div[2]/table[1]/tbody/tr[1]/td[2]/img", 10, 10)
+                            .mouseButtonClick(0)
+                            .pause(3000) //Breathe for rendering
+                            //Snapshot and baseline compare
+                            .saveScreenshot(helper.screenshotName(client, "Ajax - LEGEND002 - 001 - Hydrography turned off"))
+                            .mouseButtonClick(0)
+                            .pause(3000) //Breathe for rendering
+                            //Snapshot and baseline compare
+                            .saveScreenshot(helper.screenshotName(client, "Ajax - LEGEND002 - 002 - Hydrography turned back on"))
+                        .useCss()
+                    .frame(null)
+                .frame(null)
+            .frame(null)
+            .end();
+    },
+    'LEGEND003 - Show invisible layers context menu': function(client) {
+        client.url(settings.getAjaxViewerUrl())
+            .waitForElementPresent("#taskFrame", 5000, true)
+            //NOTE: For nested frames, you have to navigate down each frame individually. This is a selenium problem
+            .frame("taskFrame")
+                .waitForElementPresent("frame[name='taskPaneFrame']", 5000, true)
+                .frame("taskPaneFrame")
+                    .waitForElementVisible("table.RegText", 5000, true)
+                    .assert.containsText("table.RegText td.Title", "Overview")
+                .frame(null)
+            .frame(null)
+            .frame("mapFrame")
+                .waitForElementVisible("#LegendCtrl", 5000, true)
+                .frame("LegendCtrl")
+                    .waitForElementPresent("frame[name='legendUiFrame']", 5000, true)
+                    .frame("legendUiFrame")
+                        .useXpath()
+                            //Hydrograpy checkbox node
+                            .moveToElement("//div[@id='Tree']/div[1]/div[1]/div[2]/table[1]/tbody/tr[1]/td[2]/img", 10, 10)
+                            .mouseButtonClick(2)
+                        .useCss()
+                        .waitForElementVisible("#legendUi", 1000, true)
+                            .waitForElementVisible("#Legend", 1000, true)
+                                .waitForElementVisible("#TblLegend", 1000, true)
+                                .useXpath()
+                                    .waitForElementPresent("//table[@id='TblLegend']/tbody/tr/td/span[contains(text(), 'Show invisible layers')]", 1000, true)
+                                    .moveToElement("//table[@id='TblLegend']/tbody/tr/td/span[contains(text(), 'Show invisible layers')]", 10, 10)
+                                    //Snapshot and baseline compare
+                                    .saveScreenshot(helper.screenshotName(client, "Ajax - LEGEND003 - 001 - Legend context menu"))
+                                    .mouseButtonClick(0)
+                                    .pause(2000) //Breathe to let legend update happen
+                                    //Snapshot and baseline compare
+                                    .saveScreenshot(helper.screenshotName(client, "Ajax - LEGEND003 - 002 - Invisible layers shown"))
+                                .useCss()
+                    .frame(null)
+                .frame(null)
+            .frame(null)
+            .end();
+    }
+}
\ No newline at end of file



More information about the mapguide-commits mailing list