From 30516fa98b3b54fdee57ab3264e6c47e30017a6a Mon Sep 17 00:00:00 2001 From: thd Date: Wed, 15 Apr 2020 11:42:25 +0100 Subject: [PATCH] feat: add ability to test focus states This update allows you to test focused elements in the same way as click and hover elements. Useful for ensuring no regressions for keyboard users and a11y checking around buttons and interactive controls. --- README.md | 12 +- capture/config.default.json | 1 + .../chromy/clickAndHoverHelper.js | 7 + .../puppet/clickAndHoverHelper.js | 8 + examples/Jenkins/Sample/backstop.json | 1 + .../puppet/clickAndHoverHelper.js | 6 + examples/responsiveDemo/backstop.json | 1 + .../chromy/clickAndHoverHelper.js | 7 + .../puppet/clickAndHoverHelper.js | 8 + test/configs/backstop.json | 1 + ...top_features_focus_0_moneyshot_0_phone.png | Bin 0 -> 15050 bytes ...op_features_focus_0_moneyshot_1_tablet.png | Bin 0 -> 64629 bytes .../chromy/clickAndHoverHelper.js | 7 + .../puppet/clickAndHoverHelper.js | 6 + .../backstop_data/json_report/jsonReport.json | 293 ++++++++++-------- test/configs/backstop_features.js | 7 + test/configs/chrome_smoke.json | 1 + test/configs/responsiveDemo.json | 1 + test/configs/responsiveTest.json | 1 + 19 files changed, 240 insertions(+), 128 deletions(-) create mode 100644 test/configs/backstop_data/bitmaps_reference/puppet_backstop_features_focus_0_moneyshot_0_phone.png create mode 100644 test/configs/backstop_data/bitmaps_reference/puppet_backstop_features_focus_0_moneyshot_1_tablet.png diff --git a/README.md b/README.md index 64cb927d3..e1c0953f8 100644 --- a/README.md +++ b/README.md @@ -169,9 +169,11 @@ onReadyScript // After the above conditions are met -- use this scrip keyPressSelectors // Takes array of selector and string values -- simulates multiple sequential keypress interactions. hoverSelector // Move the pointer over the specified DOM element prior to screen shot. hoverSelectors // *Puppeteer only* takes array of selectors -- simulates multiple sequential hover interactions. +focusSelector // Focus the specified DOM element prior to screen shot. +focusSelectors // *Puppeteer only* takes array of selectors -- simulates multiple sequential focus interactions. clickSelector // Click the specified DOM element prior to screen shot. clickSelectors // *Puppeteer only* takes array of selectors -- simulates multiple sequential click interactions. -postInteractionWait // Wait for a selector after interacting with hoverSelector or clickSelector (optionally accepts wait time in ms. Idea for use with a click or hover element transition. available with default onReadyScript) +postInteractionWait // Wait for a selector after interacting with hoverSelector, clickSelector, or focusSelector (optionally accepts wait time in ms. Idea for use with a click or hover element transition. available with default onReadyScript) scrollToSelector // Scrolls the specified DOM element into view prior to screen shot (available with default onReadyScript) selectors // Array of selectors to capture. Defaults to document if omitted. Use "viewport" to capture the viewport size. See Targeting elements in the next section for more info... selectorExpansion // See Targeting elements in the next section for more info... @@ -181,20 +183,22 @@ viewports // An array of screen size objects your DOM will be tes ``` -### Testing click and hover interactions +### Testing click, hover, and focus interactions BackstopJS ships with an onReady script that enables the following interaction selectors... ```js clickSelector: ".my-hamburger-menu", hoverSelector: ".my-hamburger-menu .some-menu-item", +focusSelector: ".my-hamburger-menu .some-menu-item", ``` -The above would tell BackstopJS to wait for your app to generate an element with a `.my-hamburger-menu` class, then click that selector. Then it would wait again for a `.my-hamburger-menu .some-menu-item` class, then move the cursor over that element (causing a hover state). Then BackstopJS would take a screenshot. +The above would tell BackstopJS to wait for your app to generate an element with a `.my-hamburger-menu` class, then click that selector. Then it would wait again for a `.my-hamburger-menu .some-menu-item` class, then move the cursor over that element (causing a hover state), then focus that element (causing a focus state). Then BackstopJS would take a screenshot. You can use these properties independent of each other to easily test various click and or hover states in your app. These are obviously simple scenarios -- if you have more complex needs then this example should serve as a pretty good starting point create your own onReady scripts. -NOTE: Puppeteer version optionally takes `clickSelectors` & `hoverSelectors` as arrays of selectors... +NOTE: Puppeteer version optionally takes `clickSelectors`, `hoverSelectors`, and `focusSelectors` as arrays of selectors... ```js clickSelectors: [".my-hamburger-menu",".my-hamburger-item"], hoverSelectors: [".my-nav-menu-item",".my-nav-menu-dropdown-item"], +focusSelectors: [".my-nav-menu-item",".my-nav-menu-dropdown-item"], ``` ### Key Press interactions diff --git a/capture/config.default.json b/capture/config.default.json index 967585f45..e6a4baea8 100644 --- a/capture/config.default.json +++ b/capture/config.default.json @@ -26,6 +26,7 @@ "hideSelectors": [], "removeSelectors": [], "hoverSelector": "", + "focusSelector": "", "clickSelector": "", "postInteractionWait": 0, "selectors": [], diff --git a/capture/engine_scripts/chromy/clickAndHoverHelper.js b/capture/engine_scripts/chromy/clickAndHoverHelper.js index e8948ff38..609be73c9 100644 --- a/capture/engine_scripts/chromy/clickAndHoverHelper.js +++ b/capture/engine_scripts/chromy/clickAndHoverHelper.js @@ -1,5 +1,6 @@ module.exports = function (chromy, scenario) { const hoverSelector = scenario.hoverSelectors || scenario.hoverSelector; + const focusSelector = scenario.focusSelectors || scenario.focusSelector; const clickSelector = scenario.clickSelectors || scenario.clickSelector; const keyPressSelector = scenario.keyPressSelectors || scenario.keyPressSelector; const scrollToSelector = scenario.scrollToSelectors || scenario.scrollToSelector; @@ -22,6 +23,12 @@ module.exports = function (chromy, scenario) { }); } + if (focusSelector) { + chromy + .wait(focusSelector) + .focus(focusSelector); + } + if (clickSelector) { chromy .wait(clickSelector) diff --git a/capture/engine_scripts/puppet/clickAndHoverHelper.js b/capture/engine_scripts/puppet/clickAndHoverHelper.js index 81ff30e8f..b4f449b8a 100644 --- a/capture/engine_scripts/puppet/clickAndHoverHelper.js +++ b/capture/engine_scripts/puppet/clickAndHoverHelper.js @@ -1,5 +1,6 @@ module.exports = async (page, scenario) => { const hoverSelector = scenario.hoverSelectors || scenario.hoverSelector; + const focusSelector = scenario.focusSelectors || scenario.focusSelector; const clickSelector = scenario.clickSelectors || scenario.clickSelector; const keyPressSelector = scenario.keyPressSelectors || scenario.keyPressSelector; const scrollToSelector = scenario.scrollToSelector; @@ -19,6 +20,13 @@ module.exports = async (page, scenario) => { } } + if (focusSelector) { + for (const focusSelectorIndex of [].concat(focusSelector)) { + await page.waitFor(focusSelectorIndex); + await page.focus(focusSelectorIndex); + } + } + if (clickSelector) { for (const clickSelectorIndex of [].concat(clickSelector)) { await page.waitFor(clickSelectorIndex); diff --git a/examples/Jenkins/Sample/backstop.json b/examples/Jenkins/Sample/backstop.json index 32259e0f0..48b05889c 100644 --- a/examples/Jenkins/Sample/backstop.json +++ b/examples/Jenkins/Sample/backstop.json @@ -26,6 +26,7 @@ "hideSelectors": [], "removeSelectors": [], "hoverSelector": "", + "focusSelector": "", "clickSelector": "", "postInteractionWait": 1000, "selectors": [], diff --git a/examples/Jenkins/Sample/backstop_data/engine_scripts/puppet/clickAndHoverHelper.js b/examples/Jenkins/Sample/backstop_data/engine_scripts/puppet/clickAndHoverHelper.js index 269f72830..e3b9b7002 100644 --- a/examples/Jenkins/Sample/backstop_data/engine_scripts/puppet/clickAndHoverHelper.js +++ b/examples/Jenkins/Sample/backstop_data/engine_scripts/puppet/clickAndHoverHelper.js @@ -1,5 +1,6 @@ module.exports = async (page, scenario) => { const hoverSelector = scenario.hoverSelector; + const focusSelector = scenario.focusSelector; const clickSelector = scenario.clickSelector; const postInteractionWait = scenario.postInteractionWait; // selector [str] | ms [int] @@ -8,6 +9,11 @@ module.exports = async (page, scenario) => { await page.hover(hoverSelector); } + if (focusSelector) { + await page.waitFor(focusSelector); + await page.focus(focusSelector); + } + if (clickSelector) { await page.waitFor(clickSelector); await page.click(clickSelector); diff --git a/examples/responsiveDemo/backstop.json b/examples/responsiveDemo/backstop.json index c05714e83..d05e4beb7 100644 --- a/examples/responsiveDemo/backstop.json +++ b/examples/responsiveDemo/backstop.json @@ -26,6 +26,7 @@ "hideSelectors": [], "removeSelectors": [], "hoverSelector": "", + "focusSelector": "", "clickSelector": "", "postInteractionWait": 0, "selectors": [], diff --git a/examples/responsiveDemo/backstop_data/engine_scripts/chromy/clickAndHoverHelper.js b/examples/responsiveDemo/backstop_data/engine_scripts/chromy/clickAndHoverHelper.js index cb374353e..6a7b576fd 100644 --- a/examples/responsiveDemo/backstop_data/engine_scripts/chromy/clickAndHoverHelper.js +++ b/examples/responsiveDemo/backstop_data/engine_scripts/chromy/clickAndHoverHelper.js @@ -1,5 +1,6 @@ module.exports = function (chromy, scenario) { const hoverSelector = scenario.hoverSelectors || scenario.hoverSelector; + const focusSelector = scenario.focusSelectors || scenario.focusSelector; const clickSelector = scenario.clickSelectors || scenario.clickSelector; const scrollToSelector = scenario.scrollToSelectors || scenario.scrollToSelector; const postInteractionWait = scenario.postInteractionWait; // selector [str] | ms [int] @@ -13,6 +14,12 @@ module.exports = function (chromy, scenario) { }); } + if (focusSelector) { + chromy + .wait(focusSelector) + .focus(focusSelector); + } + if (clickSelector) { chromy .wait(clickSelector) diff --git a/examples/responsiveDemo/backstop_data/engine_scripts/puppet/clickAndHoverHelper.js b/examples/responsiveDemo/backstop_data/engine_scripts/puppet/clickAndHoverHelper.js index 7ff027bae..243062c3c 100644 --- a/examples/responsiveDemo/backstop_data/engine_scripts/puppet/clickAndHoverHelper.js +++ b/examples/responsiveDemo/backstop_data/engine_scripts/puppet/clickAndHoverHelper.js @@ -1,5 +1,6 @@ module.exports = async (page, scenario) => { const hoverSelector = scenario.hoverSelectors || scenario.hoverSelector; + const focusSelector = scenario.focusSelectors || scenario.focusSelector; const clickSelector = scenario.clickSelectors || scenario.clickSelector; const scrollToSelector = scenario.scrollToSelector; const postInteractionWait = scenario.postInteractionWait; // selector [str] | ms [int] @@ -11,6 +12,13 @@ module.exports = async (page, scenario) => { } } + if (focusSelector) { + for (const focusSelectorIndex of [].concat(focusSelector)) { + await page.waitFor(focusSelectorIndex); + await page.focus(focusSelectorIndex); + } + } + if (clickSelector) { for (const clickSelectorIndex of [].concat(clickSelector)) { await page.waitFor(clickSelectorIndex); diff --git a/test/configs/backstop.json b/test/configs/backstop.json index 57b93357a..187b490ae 100644 --- a/test/configs/backstop.json +++ b/test/configs/backstop.json @@ -26,6 +26,7 @@ "hideSelectors": [], "removeSelectors": [], "hoverSelector": "", + "focusSelector": "", "clickSelector": "", "postInteractionWait": 0, "selectors": [], diff --git a/test/configs/backstop_data/bitmaps_reference/puppet_backstop_features_focus_0_moneyshot_0_phone.png b/test/configs/backstop_data/bitmaps_reference/puppet_backstop_features_focus_0_moneyshot_0_phone.png new file mode 100644 index 0000000000000000000000000000000000000000..cda741bbd45d32c275c1e5ef12dab10456ebdaae GIT binary patch literal 15050 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 literal 0 HcmV?d00001 diff --git a/test/configs/backstop_data/engine_scripts/chromy/clickAndHoverHelper.js b/test/configs/backstop_data/engine_scripts/chromy/clickAndHoverHelper.js index e8948ff38..609be73c9 100644 --- a/test/configs/backstop_data/engine_scripts/chromy/clickAndHoverHelper.js +++ b/test/configs/backstop_data/engine_scripts/chromy/clickAndHoverHelper.js @@ -1,5 +1,6 @@ module.exports = function (chromy, scenario) { const hoverSelector = scenario.hoverSelectors || scenario.hoverSelector; + const focusSelector = scenario.focusSelectors || scenario.focusSelector; const clickSelector = scenario.clickSelectors || scenario.clickSelector; const keyPressSelector = scenario.keyPressSelectors || scenario.keyPressSelector; const scrollToSelector = scenario.scrollToSelectors || scenario.scrollToSelector; @@ -22,6 +23,12 @@ module.exports = function (chromy, scenario) { }); } + if (focusSelector) { + chromy + .wait(focusSelector) + .focus(focusSelector); + } + if (clickSelector) { chromy .wait(clickSelector) diff --git a/test/configs/backstop_data/engine_scripts/puppet/clickAndHoverHelper.js b/test/configs/backstop_data/engine_scripts/puppet/clickAndHoverHelper.js index 13a88ee71..01fe194e0 100644 --- a/test/configs/backstop_data/engine_scripts/puppet/clickAndHoverHelper.js +++ b/test/configs/backstop_data/engine_scripts/puppet/clickAndHoverHelper.js @@ -1,5 +1,6 @@ module.exports = async (page, scenario) => { const hoverSelector = scenario.hoverSelectors || scenario.hoverSelector; + const focusSelector = scenario.focusSelectors || scenario.focusSelector; const clickSelector = scenario.clickSelectors || scenario.clickSelector; const keyPressSelector = scenario.keyPressSelectors || scenario.keyPressSelector; const scrollToSelector = scenario.scrollToSelector; @@ -17,6 +18,11 @@ module.exports = async (page, scenario) => { await page.hover(hoverSelector); } + if (focusSelector) { + await page.waitFor(focusSelector); + await page.focus(focusSelector); + } + if (clickSelector) { await page.waitFor(clickSelector); await page.click(clickSelector); diff --git a/test/configs/backstop_data/json_report/jsonReport.json b/test/configs/backstop_data/json_report/jsonReport.json index db99088c5..64ad9695f 100644 --- a/test/configs/backstop_data/json_report/jsonReport.json +++ b/test/configs/backstop_data/json_report/jsonReport.json @@ -4,7 +4,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_Simple_0_document_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_Simple_0_document_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_Simple_0_document_0_phone.png", "selector": "document", "fileName": "puppet_backstop_features_Simple_0_document_0_phone.png", "label": "Simple", @@ -19,7 +19,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 650 + "analysisTime": 354 } }, "status": "pass" @@ -27,7 +27,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_Simple_0_document_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_Simple_0_document_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_Simple_0_document_1_tablet.png", "selector": "document", "fileName": "puppet_backstop_features_Simple_0_document_1_tablet.png", "label": "Simple", @@ -42,7 +42,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 408 + "analysisTime": 220 } }, "status": "pass" @@ -50,7 +50,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_pkra_bug_test_0_pkratest_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_pkra_bug_test_0_pkratest_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_pkra_bug_test_0_pkratest_0_phone.png", "selector": "#pkratest", "fileName": "puppet_backstop_features_pkra_bug_test_0_pkratest_0_phone.png", "label": "pkra bug test", @@ -72,7 +72,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_pkra_bug_test_1_logoBlock_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_pkra_bug_test_1_logoBlock_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_pkra_bug_test_1_logoBlock_0_phone.png", "selector": ".logoBlock", "fileName": "puppet_backstop_features_pkra_bug_test_1_logoBlock_0_phone.png", "label": "pkra bug test", @@ -94,7 +94,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_pkra_bug_test_0_pkratest_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_pkra_bug_test_0_pkratest_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_pkra_bug_test_0_pkratest_1_tablet.png", "selector": "#pkratest", "fileName": "puppet_backstop_features_pkra_bug_test_0_pkratest_1_tablet.png", "label": "pkra bug test", @@ -116,7 +116,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_pkra_bug_test_1_logoBlock_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_pkra_bug_test_1_logoBlock_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_pkra_bug_test_1_logoBlock_1_tablet.png", "selector": ".logoBlock", "fileName": "puppet_backstop_features_pkra_bug_test_1_logoBlock_1_tablet.png", "label": "pkra bug test", @@ -138,7 +138,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_delay_0_getItBlocknth-child3_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_delay_0_getItBlocknth-child3_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_delay_0_getItBlocknth-child3_0_phone.png", "selector": ".getItBlock:nth-child(3)", "fileName": "puppet_backstop_features_delay_0_getItBlocknth-child3_0_phone.png", "label": "delay", @@ -153,7 +153,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 680 + "analysisTime": 212 } }, "status": "pass" @@ -161,7 +161,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_delay_0_getItBlocknth-child3_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_delay_0_getItBlocknth-child3_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_delay_0_getItBlocknth-child3_1_tablet.png", "selector": ".getItBlock:nth-child(3)", "fileName": "puppet_backstop_features_delay_0_getItBlocknth-child3_1_tablet.png", "label": "delay", @@ -176,7 +176,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 411 + "analysisTime": 294 } }, "status": "pass" @@ -184,7 +184,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_readyEvent_0_moneyshot_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_readyEvent_0_moneyshot_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_readyEvent_0_moneyshot_0_phone.png", "selector": ".moneyshot", "fileName": "puppet_backstop_features_readyEvent_0_moneyshot_0_phone.png", "label": "readyEvent", @@ -199,7 +199,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 302 + "analysisTime": 283 } }, "status": "pass" @@ -207,7 +207,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_readyEvent_0_moneyshot_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_readyEvent_0_moneyshot_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_readyEvent_0_moneyshot_1_tablet.png", "selector": ".moneyshot", "fileName": "puppet_backstop_features_readyEvent_0_moneyshot_1_tablet.png", "label": "readyEvent", @@ -222,7 +222,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 540 + "analysisTime": 281 } }, "status": "pass" @@ -230,7 +230,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_readySelector_0_moneyshot_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_readySelector_0_moneyshot_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_readySelector_0_moneyshot_0_phone.png", "selector": ".moneyshot", "fileName": "puppet_backstop_features_readySelector_0_moneyshot_0_phone.png", "label": "readySelector", @@ -245,7 +245,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 391 + "analysisTime": 315 } }, "status": "pass" @@ -253,7 +253,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_readySelector_0_moneyshot_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_readySelector_0_moneyshot_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_readySelector_0_moneyshot_1_tablet.png", "selector": ".moneyshot", "fileName": "puppet_backstop_features_readySelector_0_moneyshot_1_tablet.png", "label": "readySelector", @@ -268,7 +268,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 458 + "analysisTime": 382 } }, "status": "pass" @@ -276,7 +276,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_noDelay_0_getItBlocknth-child3_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_noDelay_0_getItBlocknth-child3_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_noDelay_0_getItBlocknth-child3_0_phone.png", "selector": ".getItBlock:nth-child(3)", "fileName": "puppet_backstop_features_noDelay_0_getItBlocknth-child3_0_phone.png", "label": "noDelay", @@ -291,7 +291,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 400 + "analysisTime": 227 } }, "status": "pass" @@ -299,7 +299,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_noDelay_0_getItBlocknth-child3_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_noDelay_0_getItBlocknth-child3_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_noDelay_0_getItBlocknth-child3_1_tablet.png", "selector": ".getItBlock:nth-child(3)", "fileName": "puppet_backstop_features_noDelay_0_getItBlocknth-child3_1_tablet.png", "label": "noDelay", @@ -314,7 +314,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 484 + "analysisTime": 293 } }, "status": "pass" @@ -322,7 +322,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_expanded_0_getItBlock_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_expanded_0_getItBlock_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_expanded_0_getItBlock_0_phone.png", "selector": ".getItBlock", "fileName": "puppet_backstop_features_expanded_0_getItBlock_0_phone.png", "label": "expanded", @@ -337,7 +337,7 @@ "height": 0 }, "misMatchPercentage": "0.01", - "analysisTime": 253 + "analysisTime": 254 } }, "status": "pass" @@ -345,7 +345,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_expanded_1_getItBlock__n1_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_expanded_1_getItBlock__n1_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_expanded_1_getItBlock__n1_0_phone.png", "selector": ".getItBlock.__n1", "fileName": "puppet_backstop_features_expanded_1_getItBlock__n1_0_phone.png", "label": "expanded", @@ -360,7 +360,7 @@ "height": 0 }, "misMatchPercentage": "0.01", - "analysisTime": 393 + "analysisTime": 290 } }, "status": "pass" @@ -368,7 +368,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_expanded_2_getItBlock__n2_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_expanded_2_getItBlock__n2_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_expanded_2_getItBlock__n2_0_phone.png", "selector": ".getItBlock.__n2", "fileName": "puppet_backstop_features_expanded_2_getItBlock__n2_0_phone.png", "label": "expanded", @@ -383,7 +383,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 365 + "analysisTime": 306 } }, "status": "pass" @@ -391,7 +391,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_expanded_3_getItBlock__n3_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_expanded_3_getItBlock__n3_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_expanded_3_getItBlock__n3_0_phone.png", "selector": ".getItBlock.__n3", "fileName": "puppet_backstop_features_expanded_3_getItBlock__n3_0_phone.png", "label": "expanded", @@ -413,7 +413,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_expanded_0_getItBlock_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_expanded_0_getItBlock_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_expanded_0_getItBlock_1_tablet.png", "selector": ".getItBlock", "fileName": "puppet_backstop_features_expanded_0_getItBlock_1_tablet.png", "label": "expanded", @@ -428,16 +428,16 @@ "height": 0 }, "misMatchPercentage": "5.76", - "analysisTime": 401 + "analysisTime": 239 }, - "diffImage": "../bitmaps_test/20191118-081005/failed_diff_puppet_backstop_features_expanded_0_getItBlock_1_tablet.png" + "diffImage": "../bitmaps_test/20200415-103414/failed_diff_puppet_backstop_features_expanded_0_getItBlock_1_tablet.png" }, "status": "fail" }, { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_expanded_1_getItBlock__n1_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_expanded_1_getItBlock__n1_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_expanded_1_getItBlock__n1_1_tablet.png", "selector": ".getItBlock.__n1", "fileName": "puppet_backstop_features_expanded_1_getItBlock__n1_1_tablet.png", "label": "expanded", @@ -452,7 +452,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 220 + "analysisTime": 356 } }, "status": "pass" @@ -460,7 +460,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_expanded_2_getItBlock__n2_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_expanded_2_getItBlock__n2_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_expanded_2_getItBlock__n2_1_tablet.png", "selector": ".getItBlock.__n2", "fileName": "puppet_backstop_features_expanded_2_getItBlock__n2_1_tablet.png", "label": "expanded", @@ -475,7 +475,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 472 + "analysisTime": 236 } }, "status": "pass" @@ -483,7 +483,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_expanded_3_getItBlock__n3_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_expanded_3_getItBlock__n3_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_expanded_3_getItBlock__n3_1_tablet.png", "selector": ".getItBlock.__n3", "fileName": "puppet_backstop_features_expanded_3_getItBlock__n3_1_tablet.png", "label": "expanded", @@ -505,7 +505,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_notExpanded_0_getItBlock_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_notExpanded_0_getItBlock_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_notExpanded_0_getItBlock_0_phone.png", "selector": ".getItBlock", "fileName": "puppet_backstop_features_notExpanded_0_getItBlock_0_phone.png", "label": "notExpanded", @@ -520,7 +520,7 @@ "height": 0 }, "misMatchPercentage": "0.01", - "analysisTime": 347 + "analysisTime": 213 } }, "status": "pass" @@ -528,7 +528,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_notExpanded_0_getItBlock_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_notExpanded_0_getItBlock_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_notExpanded_0_getItBlock_1_tablet.png", "selector": ".getItBlock", "fileName": "puppet_backstop_features_notExpanded_0_getItBlock_1_tablet.png", "label": "notExpanded", @@ -543,7 +543,7 @@ "height": 0 }, "misMatchPercentage": "0.01", - "analysisTime": 369 + "analysisTime": 302 } }, "status": "pass" @@ -551,7 +551,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_expect_0_getItBlock_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_expect_0_getItBlock_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_expect_0_getItBlock_0_phone.png", "selector": ".getItBlock", "fileName": "puppet_backstop_features_expect_0_getItBlock_0_phone.png", "label": "expect", @@ -565,17 +565,16 @@ "width": 0, "height": 0 }, - "misMatchPercentage": "9.87", - "analysisTime": 449 - }, - "diffImage": "../bitmaps_test/20191118-081005/failed_diff_puppet_backstop_features_expect_0_getItBlock_0_phone.png" + "misMatchPercentage": "0.01", + "analysisTime": 313 + } }, - "status": "fail" + "status": "pass" }, { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_expect_1_getItBlock__n1_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_expect_1_getItBlock__n1_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_expect_1_getItBlock__n1_0_phone.png", "selector": ".getItBlock.__n1", "fileName": "puppet_backstop_features_expect_1_getItBlock__n1_0_phone.png", "label": "expect", @@ -590,7 +589,7 @@ "height": 0 }, "misMatchPercentage": "0.01", - "analysisTime": 402 + "analysisTime": 246 } }, "status": "pass" @@ -598,7 +597,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_expect_2_getItBlock__n2_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_expect_2_getItBlock__n2_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_expect_2_getItBlock__n2_0_phone.png", "selector": ".getItBlock.__n2", "fileName": "puppet_backstop_features_expect_2_getItBlock__n2_0_phone.png", "label": "expect", @@ -613,7 +612,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 318 + "analysisTime": 200 } }, "status": "pass" @@ -621,7 +620,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_expect_3_getItBlock__n3_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_expect_3_getItBlock__n3_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_expect_3_getItBlock__n3_0_phone.png", "selector": ".getItBlock.__n3", "fileName": "puppet_backstop_features_expect_3_getItBlock__n3_0_phone.png", "label": "expect", @@ -643,7 +642,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_expect_0_getItBlock_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_expect_0_getItBlock_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_expect_0_getItBlock_1_tablet.png", "selector": ".getItBlock", "fileName": "puppet_backstop_features_expect_0_getItBlock_1_tablet.png", "label": "expect", @@ -658,7 +657,7 @@ "height": 0 }, "misMatchPercentage": "0.01", - "analysisTime": 528 + "analysisTime": 269 } }, "status": "pass" @@ -666,7 +665,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_expect_1_getItBlock__n1_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_expect_1_getItBlock__n1_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_expect_1_getItBlock__n1_1_tablet.png", "selector": ".getItBlock.__n1", "fileName": "puppet_backstop_features_expect_1_getItBlock__n1_1_tablet.png", "label": "expect", @@ -681,7 +680,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 397 + "analysisTime": 277 } }, "status": "pass" @@ -689,7 +688,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_expect_2_getItBlock__n2_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_expect_2_getItBlock__n2_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_expect_2_getItBlock__n2_1_tablet.png", "selector": ".getItBlock.__n2", "fileName": "puppet_backstop_features_expect_2_getItBlock__n2_1_tablet.png", "label": "expect", @@ -704,7 +703,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 336 + "analysisTime": 193 } }, "status": "pass" @@ -712,7 +711,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_expect_3_getItBlock__n3_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_expect_3_getItBlock__n3_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_expect_3_getItBlock__n3_1_tablet.png", "selector": ".getItBlock.__n3", "fileName": "puppet_backstop_features_expect_3_getItBlock__n3_1_tablet.png", "label": "expect", @@ -734,7 +733,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_magicSelectors_0_document_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_magicSelectors_0_document_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_magicSelectors_0_document_0_phone.png", "selector": "document", "fileName": "puppet_backstop_features_magicSelectors_0_document_0_phone.png", "label": "magicSelectors", @@ -749,7 +748,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 397 + "analysisTime": 239 } }, "status": "pass" @@ -757,7 +756,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_magicSelectors_1_viewport_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_magicSelectors_1_viewport_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_magicSelectors_1_viewport_0_phone.png", "selector": "viewport", "fileName": "puppet_backstop_features_magicSelectors_1_viewport_0_phone.png", "label": "magicSelectors", @@ -772,7 +771,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 477 + "analysisTime": 248 } }, "status": "pass" @@ -780,7 +779,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_magicSelectors_0_document_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_magicSelectors_0_document_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_magicSelectors_0_document_1_tablet.png", "selector": "document", "fileName": "puppet_backstop_features_magicSelectors_0_document_1_tablet.png", "label": "magicSelectors", @@ -795,7 +794,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 92 + "analysisTime": 88 } }, "status": "pass" @@ -803,7 +802,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_magicSelectors_1_viewport_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_magicSelectors_1_viewport_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_magicSelectors_1_viewport_1_tablet.png", "selector": "viewport", "fileName": "puppet_backstop_features_magicSelectors_1_viewport_1_tablet.png", "label": "magicSelectors", @@ -818,7 +817,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 274 + "analysisTime": 223 } }, "status": "pass" @@ -826,7 +825,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_hideSelectors_0_document_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_hideSelectors_0_document_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_hideSelectors_0_document_0_phone.png", "selector": "document", "fileName": "puppet_backstop_features_hideSelectors_0_document_0_phone.png", "label": "hideSelectors", @@ -841,7 +840,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 334 + "analysisTime": 147 } }, "status": "pass" @@ -849,7 +848,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_hideSelectors_0_document_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_hideSelectors_0_document_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_hideSelectors_0_document_1_tablet.png", "selector": "document", "fileName": "puppet_backstop_features_hideSelectors_0_document_1_tablet.png", "label": "hideSelectors", @@ -864,7 +863,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 117 + "analysisTime": 81 } }, "status": "pass" @@ -872,7 +871,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_removeSelectors_0_document_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_removeSelectors_0_document_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_removeSelectors_0_document_0_phone.png", "selector": "document", "fileName": "puppet_backstop_features_removeSelectors_0_document_0_phone.png", "label": "removeSelectors", @@ -887,7 +886,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 257 + "analysisTime": 194 } }, "status": "pass" @@ -895,7 +894,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_removeSelectors_0_document_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_removeSelectors_0_document_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_removeSelectors_0_document_1_tablet.png", "selector": "document", "fileName": "puppet_backstop_features_removeSelectors_0_document_1_tablet.png", "label": "removeSelectors", @@ -910,7 +909,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 391 + "analysisTime": 324 } }, "status": "pass" @@ -918,7 +917,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_notFound_0_monkey_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_notFound_0_monkey_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_notFound_0_monkey_0_phone.png", "selector": ".monkey", "fileName": "puppet_backstop_features_notFound_0_monkey_0_phone.png", "label": "notFound", @@ -940,7 +939,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_notFound_0_monkey_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_notFound_0_monkey_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_notFound_0_monkey_1_tablet.png", "selector": ".monkey", "fileName": "puppet_backstop_features_notFound_0_monkey_1_tablet.png", "label": "notFound", @@ -962,7 +961,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_notVisible_0_noShow_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_notVisible_0_noShow_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_notVisible_0_noShow_0_phone.png", "selector": "#noShow", "fileName": "puppet_backstop_features_notVisible_0_noShow_0_phone.png", "label": "notVisible", @@ -984,7 +983,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_notVisible_0_noShow_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_notVisible_0_noShow_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_notVisible_0_noShow_1_tablet.png", "selector": "#noShow", "fileName": "puppet_backstop_features_notVisible_0_noShow_1_tablet.png", "label": "notVisible", @@ -1006,7 +1005,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_cookies_0_moneyshot_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_cookies_0_moneyshot_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_cookies_0_moneyshot_0_phone.png", "selector": ".moneyshot", "fileName": "puppet_backstop_features_cookies_0_moneyshot_0_phone.png", "label": "cookies", @@ -1021,7 +1020,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 366 + "analysisTime": 175 } }, "status": "pass" @@ -1029,7 +1028,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_cookies_0_moneyshot_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_cookies_0_moneyshot_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_cookies_0_moneyshot_1_tablet.png", "selector": ".moneyshot", "fileName": "puppet_backstop_features_cookies_0_moneyshot_1_tablet.png", "label": "cookies", @@ -1044,7 +1043,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 401 + "analysisTime": 255 } }, "status": "pass" @@ -1052,7 +1051,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_hover_0_moneyshot_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_hover_0_moneyshot_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_hover_0_moneyshot_0_phone.png", "selector": ".moneyshot", "fileName": "puppet_backstop_features_hover_0_moneyshot_0_phone.png", "label": "hover", @@ -1066,16 +1065,17 @@ "width": 0, "height": 0 }, - "misMatchPercentage": "0.00", - "analysisTime": 233 - } + "misMatchPercentage": "1.38", + "analysisTime": 206 + }, + "diffImage": "../bitmaps_test/20200415-103414/failed_diff_puppet_backstop_features_hover_0_moneyshot_0_phone.png" }, - "status": "pass" + "status": "fail" }, { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_hover_0_moneyshot_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_hover_0_moneyshot_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_hover_0_moneyshot_1_tablet.png", "selector": ".moneyshot", "fileName": "puppet_backstop_features_hover_0_moneyshot_1_tablet.png", "label": "hover", @@ -1089,8 +1089,53 @@ "width": 0, "height": 0 }, - "misMatchPercentage": "0.00", - "analysisTime": 280 + "misMatchPercentage": "0.43", + "analysisTime": 225 + }, + "diffImage": "../bitmaps_test/20200415-103414/failed_diff_puppet_backstop_features_hover_0_moneyshot_1_tablet.png" + }, + "status": "fail" + }, + { + "pair": { + "reference": "../bitmaps_reference/puppet_backstop_features_focus_0_moneyshot_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_focus_0_moneyshot_0_phone.png", + "selector": ".moneyshot", + "fileName": "puppet_backstop_features_focus_0_moneyshot_0_phone.png", + "label": "focus", + "misMatchThreshold": 0.1, + "url": "https://garris.github.io/BackstopJS/index.html?click", + "expect": 0, + "viewportLabel": "phone", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "../bitmaps_reference/puppet_backstop_features_focus_0_moneyshot_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_focus_0_moneyshot_1_tablet.png", + "selector": ".moneyshot", + "fileName": "puppet_backstop_features_focus_0_moneyshot_1_tablet.png", + "label": "focus", + "misMatchThreshold": 0.1, + "url": "https://garris.github.io/BackstopJS/index.html?click", + "expect": 0, + "viewportLabel": "tablet", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" } }, "status": "pass" @@ -1098,7 +1143,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_click_0_moneyshot_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_click_0_moneyshot_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_click_0_moneyshot_0_phone.png", "selector": ".moneyshot", "fileName": "puppet_backstop_features_click_0_moneyshot_0_phone.png", "label": "click", @@ -1113,7 +1158,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 263 + "analysisTime": 196 } }, "status": "pass" @@ -1121,7 +1166,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_click_0_moneyshot_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_click_0_moneyshot_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_click_0_moneyshot_1_tablet.png", "selector": ".moneyshot", "fileName": "puppet_backstop_features_click_0_moneyshot_1_tablet.png", "label": "click", @@ -1136,7 +1181,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 247 + "analysisTime": 250 } }, "status": "pass" @@ -1144,7 +1189,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_scrollToSelector_0_lemurFace_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_scrollToSelector_0_lemurFace_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_scrollToSelector_0_lemurFace_0_phone.png", "selector": ".lemurFace", "fileName": "puppet_backstop_features_scrollToSelector_0_lemurFace_0_phone.png", "label": "scrollToSelector", @@ -1166,7 +1211,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_scrollToSelector_0_lemurFace_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_scrollToSelector_0_lemurFace_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_scrollToSelector_0_lemurFace_1_tablet.png", "selector": ".lemurFace", "fileName": "puppet_backstop_features_scrollToSelector_0_lemurFace_1_tablet.png", "label": "scrollToSelector", @@ -1188,7 +1233,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_scenarioSpecificViewports_0_document_0_Galaxy-S5.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_scenarioSpecificViewports_0_document_0_Galaxy-S5.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_scenarioSpecificViewports_0_document_0_Galaxy-S5.png", "selector": "document", "fileName": "puppet_backstop_features_scenarioSpecificViewports_0_document_0_Galaxy-S5.png", "label": "scenarioSpecificViewports", @@ -1203,7 +1248,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 318 + "analysisTime": 223 } }, "status": "pass" @@ -1211,7 +1256,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_scenarioSpecificViewports_1_viewport_0_Galaxy-S5.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_scenarioSpecificViewports_1_viewport_0_Galaxy-S5.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_scenarioSpecificViewports_1_viewport_0_Galaxy-S5.png", "selector": "viewport", "fileName": "puppet_backstop_features_scenarioSpecificViewports_1_viewport_0_Galaxy-S5.png", "label": "scenarioSpecificViewports", @@ -1226,7 +1271,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 457 + "analysisTime": 188 } }, "status": "pass" @@ -1234,7 +1279,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_scenarioSpecificViewports-withEmptyViewports_0_document_0_phone.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_scenarioSpecificViewports-withEmptyViewports_0_document_0_phone.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_scenarioSpecificViewports-withEmptyViewports_0_document_0_phone.png", "selector": "document", "fileName": "puppet_backstop_features_scenarioSpecificViewports-withEmptyViewports_0_document_0_phone.png", "label": "scenarioSpecificViewports-withEmptyViewports", @@ -1249,7 +1294,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 252 + "analysisTime": 221 } }, "status": "pass" @@ -1257,7 +1302,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_scenarioSpecificViewports-withEmptyViewports_0_document_1_tablet.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_scenarioSpecificViewports-withEmptyViewports_0_document_1_tablet.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_scenarioSpecificViewports-withEmptyViewports_0_document_1_tablet.png", "selector": "document", "fileName": "puppet_backstop_features_scenarioSpecificViewports-withEmptyViewports_0_document_1_tablet.png", "label": "scenarioSpecificViewports-withEmptyViewports", @@ -1272,7 +1317,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 56 + "analysisTime": 55 } }, "status": "pass" @@ -1280,7 +1325,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_scenarioSpecificViewports-withMultipleViewports_0_document_0_Pixel-2.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_scenarioSpecificViewports-withMultipleViewports_0_document_0_Pixel-2.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_scenarioSpecificViewports-withMultipleViewports_0_document_0_Pixel-2.png", "selector": "document", "fileName": "puppet_backstop_features_scenarioSpecificViewports-withMultipleViewports_0_document_0_Pixel-2.png", "label": "scenarioSpecificViewports-withMultipleViewports", @@ -1295,7 +1340,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 125 + "analysisTime": 138 } }, "status": "pass" @@ -1303,7 +1348,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_scenarioSpecificViewports-withMultipleViewports_0_document_1_Pixel2-XL.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_scenarioSpecificViewports-withMultipleViewports_0_document_1_Pixel2-XL.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_scenarioSpecificViewports-withMultipleViewports_0_document_1_Pixel2-XL.png", "selector": "document", "fileName": "puppet_backstop_features_scenarioSpecificViewports-withMultipleViewports_0_document_1_Pixel2-XL.png", "label": "scenarioSpecificViewports-withMultipleViewports", @@ -1318,7 +1363,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 64 + "analysisTime": 155 } }, "status": "pass" @@ -1326,7 +1371,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_scenarioSpecificViewports-withMultipleViewports_0_document_2_iPhone-X.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_scenarioSpecificViewports-withMultipleViewports_0_document_2_iPhone-X.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_scenarioSpecificViewports-withMultipleViewports_0_document_2_iPhone-X.png", "selector": "document", "fileName": "puppet_backstop_features_scenarioSpecificViewports-withMultipleViewports_0_document_2_iPhone-X.png", "label": "scenarioSpecificViewports-withMultipleViewports", @@ -1341,7 +1386,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 226 + "analysisTime": 90 } }, "status": "pass" @@ -1349,7 +1394,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_scenarioSpecificViewports-withMultipleViewports_0_document_3_iPad-Pro.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_scenarioSpecificViewports-withMultipleViewports_0_document_3_iPad-Pro.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_scenarioSpecificViewports-withMultipleViewports_0_document_3_iPad-Pro.png", "selector": "document", "fileName": "puppet_backstop_features_scenarioSpecificViewports-withMultipleViewports_0_document_3_iPad-Pro.png", "label": "scenarioSpecificViewports-withMultipleViewports", @@ -1364,7 +1409,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 58 + "analysisTime": 59 } }, "status": "pass" @@ -1372,7 +1417,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_scenarioSpecificViewports-withExpandSelector_0_getItBlock_0_iPad-Pro.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_scenarioSpecificViewports-withExpandSelector_0_getItBlock_0_iPad-Pro.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_scenarioSpecificViewports-withExpandSelector_0_getItBlock_0_iPad-Pro.png", "selector": ".getItBlock", "fileName": "puppet_backstop_features_scenarioSpecificViewports-withExpandSelector_0_getItBlock_0_iPad-Pro.png", "label": "scenarioSpecificViewports-withExpandSelector", @@ -1387,7 +1432,7 @@ "height": 0 }, "misMatchPercentage": "0.01", - "analysisTime": 264 + "analysisTime": 146 } }, "status": "pass" @@ -1395,7 +1440,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_scenarioSpecificViewports-withExpandSelector_1_getItBlock__n1_0_iPad-Pro.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_scenarioSpecificViewports-withExpandSelector_1_getItBlock__n1_0_iPad-Pro.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_scenarioSpecificViewports-withExpandSelector_1_getItBlock__n1_0_iPad-Pro.png", "selector": ".getItBlock.__n1", "fileName": "puppet_backstop_features_scenarioSpecificViewports-withExpandSelector_1_getItBlock__n1_0_iPad-Pro.png", "label": "scenarioSpecificViewports-withExpandSelector", @@ -1410,7 +1455,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 300 + "analysisTime": 119 } }, "status": "pass" @@ -1418,7 +1463,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_scenarioSpecificViewports-withExpandSelector_2_getItBlock__n2_0_iPad-Pro.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_scenarioSpecificViewports-withExpandSelector_2_getItBlock__n2_0_iPad-Pro.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_scenarioSpecificViewports-withExpandSelector_2_getItBlock__n2_0_iPad-Pro.png", "selector": ".getItBlock.__n2", "fileName": "puppet_backstop_features_scenarioSpecificViewports-withExpandSelector_2_getItBlock__n2_0_iPad-Pro.png", "label": "scenarioSpecificViewports-withExpandSelector", @@ -1433,7 +1478,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 298 + "analysisTime": 123 } }, "status": "pass" @@ -1441,7 +1486,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_scenarioSpecificViewports-withExpandSelector_3_getItBlock__n3_0_iPad-Pro.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_scenarioSpecificViewports-withExpandSelector_3_getItBlock__n3_0_iPad-Pro.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_scenarioSpecificViewports-withExpandSelector_3_getItBlock__n3_0_iPad-Pro.png", "selector": ".getItBlock.__n3", "fileName": "puppet_backstop_features_scenarioSpecificViewports-withExpandSelector_3_getItBlock__n3_0_iPad-Pro.png", "label": "scenarioSpecificViewports-withExpandSelector", @@ -1463,7 +1508,7 @@ { "pair": { "reference": "../bitmaps_reference/puppet_backstop_features_keyPressSelector_0_dividnavbar_0_Desktop.png", - "test": "../bitmaps_test/20191118-081005/puppet_backstop_features_keyPressSelector_0_dividnavbar_0_Desktop.png", + "test": "../bitmaps_test/20200415-103414/puppet_backstop_features_keyPressSelector_0_dividnavbar_0_Desktop.png", "selector": "div[id=navbar]", "fileName": "puppet_backstop_features_keyPressSelector_0_dividnavbar_0_Desktop.png", "label": "keyPressSelector", @@ -1478,7 +1523,7 @@ "height": 0 }, "misMatchPercentage": "0.00", - "analysisTime": 82 + "analysisTime": 61 } }, "status": "pass" diff --git a/test/configs/backstop_features.js b/test/configs/backstop_features.js index c7725670b..cb1a50931 100644 --- a/test/configs/backstop_features.js +++ b/test/configs/backstop_features.js @@ -121,6 +121,13 @@ module.exports = { postInteractionWait: 1000, selectors: ['.moneyshot'] }, + { + label: 'focus', + url: `${URL}/index.html?click`, + focusSelector: '.lemur-link', + postInteractionWait: 1000, + selectors: ['.moneyshot'] + }, { label: 'click', url: `${URL}/index.html?click`, diff --git a/test/configs/chrome_smoke.json b/test/configs/chrome_smoke.json index 61cf09c19..10d4889b0 100644 --- a/test/configs/chrome_smoke.json +++ b/test/configs/chrome_smoke.json @@ -26,6 +26,7 @@ "hideSelectors": [], "removeSelectors": [], "hoverSelector": "", + "focusSelector": "", "clickSelector": "", "postInteractionWait": "", "selectors": [], diff --git a/test/configs/responsiveDemo.json b/test/configs/responsiveDemo.json index 1e0cc6182..956ae4c99 100644 --- a/test/configs/responsiveDemo.json +++ b/test/configs/responsiveDemo.json @@ -26,6 +26,7 @@ "hideSelectors": [], "removeSelectors": [], "hoverSelector": "", + "focusSelector": "", "clickSelector": "", "postInteractionWait": 0, "selectors": [], diff --git a/test/configs/responsiveTest.json b/test/configs/responsiveTest.json index 6a0eb5dfb..752f63581 100644 --- a/test/configs/responsiveTest.json +++ b/test/configs/responsiveTest.json @@ -25,6 +25,7 @@ "hideSelectors": [], "removeSelectors": [], "hoverSelector": "", + "focusSelector": "", "clickSelector": "", "postInteractionWait": 0, "selectors": [],