[mapguide-commits] r8758 - in trunk/MgDev/UnitTest/Acceptance: screenshots tests/ajax
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Thu Sep 10 08:39:29 PDT 2015
Author: jng
Date: 2015-09-10 08:39:29 -0700 (Thu, 10 Sep 2015)
New Revision: 8758
Added:
trunk/MgDev/UnitTest/Acceptance/tests/ajax/tools.js
Modified:
trunk/MgDev/UnitTest/Acceptance/screenshots/
Log:
Add AJAX viewer tests for:
- Select
- Buffer
- Measure
Property changes on: trunk/MgDev/UnitTest/Acceptance/screenshots
___________________________________________________________________
Added: svn:ignore
+ win32_ia32_chrome
win32_ia32_firefox
Added: trunk/MgDev/UnitTest/Acceptance/tests/ajax/tools.js
===================================================================
--- trunk/MgDev/UnitTest/Acceptance/tests/ajax/tools.js (rev 0)
+++ trunk/MgDev/UnitTest/Acceptance/tests/ajax/tools.js 2015-09-10 15:39:29 UTC (rev 8758)
@@ -0,0 +1,267 @@
+var settings = require("../settings");
+var helper = require("../helper");
+var wl = require("./weblayout");
+
+module.exports = {
+ tags: ["ajax", "tools"],
+ beforeEach: function(browser) {
+ helper.setDefaultBrowserSize(browser);
+ },
+ 'TOOLS001 - Select': 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)
+ .waitForElementPresent("#tbFrame", 5000, true)
+ .frame("tbFrame")
+ .useXpath()
+ .waitForElementVisible(wl.getToolbarCommand(wl.toolbar.ZOOM_RECT), 1000, true)
+ .moveToElement(wl.getToolbarCommand(wl.toolbar.ZOOM_RECT), 10, 10)
+ .click(wl.getToolbarCommand(wl.toolbar.ZOOM_RECT))
+ //Snapshot and baseline compare
+ .saveScreenshot(helper.screenshotName(client, "Ajax - TOOLS001 - 001 - Zoom Rectangle clicked"))
+ .useCss()
+ .frame(null)
+ .waitForElementPresent("#mapFrame", 5000, true)
+ .frame("mapFrame")
+ .moveToElement("#map", 350, 350)
+ .mouseButtonDown(0)
+ .moveToElement("#map", 400, 400)
+ //Snapshot and baseline compare
+ .saveScreenshot(helper.screenshotName(client, "Ajax - TOOLS001 - 002 - Zoom Rectangle drag box"))
+ .mouseButtonUp(0)
+ .pause(3000) //Breathe for rendering
+ //Snapshot and baseline compare
+ .saveScreenshot(helper.screenshotName(client, "Ajax - TOOLS001 - 003 - Zoom Rectangle result"))
+ .frame(null)
+ .frame("tbFrame")
+ .useXpath()
+ .waitForElementVisible(wl.getToolbarCommand(wl.toolbar.SELECT), 1000, true)
+ .moveToElement(wl.getToolbarCommand(wl.toolbar.SELECT), 10, 10)
+ .click(wl.getToolbarCommand(wl.toolbar.SELECT))
+ //Snapshot and baseline compare
+ .saveScreenshot(helper.screenshotName(client, "Ajax - TOOLS001 - 004 - Select clicked"))
+ .useCss()
+ .frame(null)
+ .frame("mapFrame")
+ .moveToElement("#map", 350, 350)
+ .mouseButtonDown(0)
+ .moveToElement("#map", 360, 360)
+ //Snapshot and baseline compare
+ .saveScreenshot(helper.screenshotName(client, "Ajax - TOOLS001 - 005 - Select drag box"))
+ .mouseButtonUp(0)
+ .pause(1000) //Breathe for rendering
+ .waitForElementVisible("#PropertyPaneToolbar", 1000, true)
+ .assert.containsText("#selLayers option:nth-child(1)", "Parcels", "Expected selected layer dropdown present with entry 'Parcels'")
+ .assert.containsText("#selFeature option:nth-child(1)", "1", "Expected selected feature dropdown present with entry '1'")
+ .frame("PropertyCtrl")
+ .waitForElementVisible("#Grid", 1000, true)
+ .assert.elementPresent("#Grid tbody tr.GridCell", "Expected property palette to have attributes of selected feature")
+ .frame(null)
+ .frame("mapFrame")
+ //Snapshot and baseline compare
+ .saveScreenshot(helper.screenshotName(client, "Ajax - TOOLS001 - 006 - Select result"))
+ .moveToElement("#btnZoomSelectedFeature", 10, 10)
+ .mouseButtonClick(0)
+ .pause(3000) //Breathe for rendering
+ .saveScreenshot(helper.screenshotName(client, "Ajax - TOOLS001 - 007 - Zoom to selected feature result"))
+ .frame(null)
+ .end();
+ },
+ 'TOOLS002 - Buffer': 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)
+ .waitForElementPresent("#tbFrame", 5000, true)
+ .frame("tbFrame")
+ .useXpath()
+ .waitForElementVisible(wl.getToolbarCommand(wl.toolbar.ZOOM_RECT), 1000, true)
+ .moveToElement(wl.getToolbarCommand(wl.toolbar.ZOOM_RECT), 10, 10)
+ .click(wl.getToolbarCommand(wl.toolbar.ZOOM_RECT))
+ //Snapshot and baseline compare
+ .saveScreenshot(helper.screenshotName(client, "Ajax - TOOLS002 - 001 - Zoom Rectangle clicked"))
+ .useCss()
+ .frame(null)
+ .waitForElementPresent("#mapFrame", 5000, true)
+ .frame("mapFrame")
+ .moveToElement("#map", 350, 350)
+ .mouseButtonDown(0)
+ .moveToElement("#map", 400, 400)
+ //Snapshot and baseline compare
+ .saveScreenshot(helper.screenshotName(client, "Ajax - TOOLS002 - 002 - Zoom Rectangle drag box"))
+ .mouseButtonUp(0)
+ .pause(3000) //Breathe for rendering
+ //Snapshot and baseline compare
+ .saveScreenshot(helper.screenshotName(client, "Ajax - TOOLS002 - 003 - Zoom Rectangle result"))
+ .frame(null)
+ .frame("tbFrame")
+ .useXpath()
+ .waitForElementVisible(wl.getToolbarCommand(wl.toolbar.SELECT), 1000, true)
+ .moveToElement(wl.getToolbarCommand(wl.toolbar.SELECT), 10, 10)
+ .click(wl.getToolbarCommand(wl.toolbar.SELECT))
+ //Snapshot and baseline compare
+ .saveScreenshot(helper.screenshotName(client, "Ajax - TOOLS002 - 004 - Select clicked"))
+ .useCss()
+ .frame(null)
+ .frame("mapFrame")
+ .moveToElement("#map", 350, 350)
+ .mouseButtonDown(0)
+ .moveToElement("#map", 360, 360)
+ //Snapshot and baseline compare
+ .saveScreenshot(helper.screenshotName(client, "Ajax - TOOLS002 - 005 - Select drag box"))
+ .mouseButtonUp(0)
+ .pause(1000) //Breathe for rendering
+ .waitForElementVisible("#PropertyPaneToolbar", 1000, true)
+ .assert.containsText("#selLayers option:nth-child(1)", "Parcels", "Expected selected layer dropdown present with entry 'Parcels'")
+ .assert.containsText("#selFeature option:nth-child(1)", "1", "Expected selected feature dropdown present with entry '1'")
+ .frame("PropertyCtrl")
+ .waitForElementVisible("#Grid", 1000, true)
+ .assert.elementPresent("#Grid tbody tr.GridCell", "Expected property palette to have attributes of selected feature")
+ .frame(null)
+ //Snapshot and baseline compare
+ .saveScreenshot(helper.screenshotName(client, "Ajax - TOOLS002 - 006 - Select result"))
+ .frame(null)
+ .frame("tbFrame")
+ .useXpath()
+ .waitForElementVisible(wl.getToolbarCommand(wl.toolbar.BUFFER), 1000, true)
+ .moveToElement(wl.getToolbarCommand(wl.toolbar.BUFFER), 10, 10)
+ .click(wl.getToolbarCommand(wl.toolbar.BUFFER))
+ .useCss()
+ .frame(null)
+ //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", "Create a Buffer")
+ //Snapshot and baseline compare
+ .saveScreenshot(helper.screenshotName(client, "Ajax - TOOLS002 - 007 - Buffer UI"))
+ .execute(function() {
+ try {
+ var sel = document.querySelector("select[name='UNITS']");
+ for (var i = 0; i < sel.options.length; i++) {
+ if (sel.options[i].value == "me") {
+ sel.selectedIndex = i;
+ return "me";
+ break;
+ }
+ }
+ return null;
+ } catch (e) {
+ return e;
+ }
+ }, function(result) {
+ if (typeof(result.value) == 'string') {
+ console.log("Set units to: " + result.value);
+ } else {
+ console.log("Failed to select unit type: " + result.value);
+ }
+ })
+ .click("#distance")
+ .keys(client.Keys.BACK_SPACE)
+ .setValue("#distance", 100)
+ .moveToElement("#Done", 10, 10)
+ .mouseButtonClick(0)
+ .pause(3000) //Breathe to let buffer do its thing
+ .waitForElementVisible("table.RegText p:nth-child(2)", 1000, true)
+ .assert.containsText("table.RegText p:nth-child(2)", "1 buffer feature was created.")
+ //Snapshot and baseline compare
+ .saveScreenshot(helper.screenshotName(client, "Ajax - TOOLS002 - 008 - Buffer result"))
+ .frame(null)
+ .frame(null)
+ .end();
+ },
+ 'TOOLS003 - Measure': 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)
+ .waitForElementPresent("#tbFrame", 5000, true)
+ .frame("tbFrame")
+ .useXpath()
+ .waitForElementVisible(wl.getToolbarCommand(wl.toolbar.MEASURE), 1000, true)
+ .moveToElement(wl.getToolbarCommand(wl.toolbar.MEASURE), 10, 10)
+ .click(wl.getToolbarCommand(wl.toolbar.MEASURE))
+ .useCss()
+ .frame(null)
+ //NOTE: For nested frames, you have to navigate down each frame individually. This is a selenium problem
+ .frame("taskFrame")
+ .frame("taskPaneFrame")
+ .waitForElementVisible("table", 5000, true)
+ .assert.containsText("table td.Title", "Measure Distance")
+ //Snapshot and baseline compare
+ .saveScreenshot(helper.screenshotName(client, "Ajax - TOOLS003 - 001 - Measure UI"))
+ .execute(function() {
+ try {
+ var sel = document.querySelector("select[name='UNITS']");
+ for (var i = 0; i < sel.options.length; i++) {
+ if (sel.options[i].value == "m") {
+ sel.options[i].selected = true;
+ return "m";
+ break;
+ }
+ }
+ return null;
+ } catch (e) {
+ return e;
+ }
+ }, function(result) {
+ if (typeof(result.value) == 'string') {
+ console.log("Set units to: " + result.value);
+ } else {
+ console.log("Failed to select unit type: " + result.value);
+ }
+ })
+ //FIXME: The labels will still probably still show the default units as we set the select programmatically
+ //and not through browser controlled actions
+ .frame(null)
+ .frame(null)
+ .frame("mapFrame")
+ .moveToElement("#map", 250, 250)
+ .mouseButtonClick(0)
+ .pause(1000) //Breathe to let measure results render
+ .moveToElement("#map", 265, 260)
+ .mouseButtonClick(0)
+ .pause(1000) //Breathe to let measure results render
+ .moveToElement("#map", 270, 240)
+ .mouseButtonClick(0)
+ .pause(1000) //Breathe to let measure results render
+ .moveToElement("#map", 240, 250)
+ .mouseButtonClick(0)
+ .pause(1000) //Breathe to let measure results render
+ .saveScreenshot(helper.screenshotName(client, "Ajax - TOOLS003 - 002 - Measure result"))
+ .frame(null)
+ //NOTE: For nested frames, you have to navigate down each frame individually. This is a selenium problem
+ .frame("taskFrame")
+ .frame("taskPaneFrame")
+ .useXpath()
+ .moveToElement("//input[contains(@onclick, 'ClearMeasure()')]", 10, 10)
+ .mouseButtonClick(0)
+ .pause(2000) //Breathe to let selection clear
+ .useCss()
+ //Snapshot and baseline compare
+ .saveScreenshot(helper.screenshotName(client, "Ajax - TOOLS003 - 003 - Measure cleared"))
+ .frame(null)
+ .frame(null)
+ .end();
+ }
+};
\ No newline at end of file
More information about the mapguide-commits
mailing list