[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