[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