diff options
author | Thomas Steur <tsteur@users.noreply.github.com> | 2019-05-09 01:26:39 +0300 |
---|---|---|
committer | diosmosis <diosmosis@users.noreply.github.com> | 2019-05-09 01:26:39 +0300 |
commit | 76e60590f486f33a38e7ea08bf941fa57ac904c5 (patch) | |
tree | 695bafa55fcd74d79322ed3885e90c4a17ff3e01 /plugins/Login | |
parent | 461a48e6d7050f73b1c25db98b6f96cff86bd043 (diff) |
Switch UI tests from phantomjs to chrome headless (#14421)
* Make sure xss entries is always an array.
* Update expected test files and submodule.
* Regenerate broken omnifixture dump.
* poc conversion to chrome headless for UI tests, single test works locally
* Get single test to pass on travis & local w/ headless chrome.
* Remove old diff viewer generation, and get output to look the same as before when there is a failure.
* Add global timeout & get ViewDataTableTest to pass.
* Convert BarGraph_spec.js.
* Convert EmptySite_spec.
* Update EvolutionGraph spec for chrome headless.
* Convert GoalsTable test & find/replace for common changes.
* Convert MeasurableManager.
* Another find & replace.
* Get Menus/OptOutForm to pass w/ chrome headless
* Convert PeriodSelector, PieGraph & PivotByDimension UI tests.
* undo unrelated debugging change
* Convert QuickAccess UI tests
* Converts ActionsDataTable UI tests
* reset viewport after each testsuite
* Converts RowEvolution UI tests
* Converts Theme UI tests
* Converts SiteSelector UI tests
* Converts CustomVariables UI test
* Converts DBStats UI test
* Ignore empty responses when calling api/controller
* Converts Dashboard UI tests
* Converts Live UI tests
* Converts SimpleUI tests
* Converts Installation UI tests
* Converts ImageGraph UI tests
* Converts Login UI tests
* Converts Marketplace UI tests
* Converts Insights UI tests
* Converts ReportExporting UI tests
* Converts UIIntegration tests
* Updates ViewDataTable UI tests
* Converts CoreUpdater UI tests
* Converts UsersManager UI tests
* Converts Morpheus UI tests
* Converts MultiSites UI tests
* Fix testEnvironment.callApi handling of array parameters
* Converts Overlay UI tests
* Converts PrivacyManager UI tests
* Converts ScheduledReports UI tests
* Converts SegmentEditor UI tests
* compare pixel difference in images
* Converts PeriodSelector UI tests
* allow a pixel difference
* Converts SingleMetricView UI tests
* Converts SitesManager UI tests
* Converts Transitions UI tests
* Converts MeasurableManager UI tests
* Move Mouse out of screen after each test suite
* Converts PieGraph UI tests
* Ensure cursor is not shown in focused input elements
* Converts VisitorMap UI tests
* Converts CustomLogo UI tests
* Converts BarGraph UI tests
* Converts EvolutionGraph UI tests
* Converts IntranetMeasurable UI tests
* Converts TrackingFailures UI tests
* Converts CampaignBuilder UI tests
* Converts TagManagerTeaser UI tests
* fix request url rewrite for changed port
* Converts TwoFactorAuth UI tests
* do not print full responses in logs, but size instead
* improve additional style injection
* use submodule branches
* fix request interception
* update dependencies
* [TEMP] disable dangerous link checks
* [TEMP] limit tests
* Use puppeteer@next and make sure diffs get uploaded properly.
* Use correct fs function.
* Allow timeout to be specified on command line for UI tests and debug console logs.
* timeout option tweak
* Setup diff dir once before running tests not before each suite.
* fix last commit
* Update screenshots and fix some specs.
* Convert some tests that were not converted during merge.
* updating screenshots
* Updating screenshots and fixing some tests.
* more test fixes
* couple more test fixes
* More test fixes and plugin updates.
* wait for jquery
* Fix some screenshots and tests.
* more test fixes
* debug travis test failure
* remove .only
* more test fixes and updated expected files
* another test fixing iteration
* typo
* another quick test change
* more tests updates
* Test fixes and & more debugging.
* more debugging and test fixes
* more fixes and debugging.
* remove .only
* Another round of fixed tests.
* more debugging & fixes
* more test changes
* more debugging and fixes
* Fixing more tests + some bug fixes.
* Couple more fixes.
* Couple more fixes.
* Fixing tracking failures test
* more fixes
* Last couple fixes hopefully.
* couple more test fixes
* more fixes, bug fix in usersmanager, some test updates
* Some more test fixes/changes.
* more and more fixes
* hoping for a green build
* Do not compare against existing files in dashboard_spec.
* more fixes, re-enabling travis
* really re-enable travis
* Install puppeteer on travis-ci.
* more fixes
* try to fix random failues
* remove return
* Convert some login tests I forgot and update UsersManager expected file
* Fix test for primary key update
* Update AddPrimaryKey.php
* More test fixes + implement synchronous comparison threshold (so no resemblejs)
* More wait fixes + reset token detection fix.
* couple more fixes
* Fix login/overlay screenshot issue & magick command running issue.
* identify is the executable on travis (hopefully) + fix some random failures
* Another run.
* Last fix.
* two more tweaks
* typo
Diffstat (limited to 'plugins/Login')
14 files changed, 166 insertions, 115 deletions
diff --git a/plugins/Login/templates/login.twig b/plugins/Login/templates/login.twig index a3bf51fd46..51c6612024 100644 --- a/plugins/Login/templates/login.twig +++ b/plugins/Login/templates/login.twig @@ -48,7 +48,7 @@ <input name="form_rememberme" type="checkbox" id="login_form_rememberme" value="1" tabindex="90" {% if form_data.form_rememberme.value %}checked="checked" {% endif %}/> <label for="login_form_rememberme">{{ 'Login_RememberMe'|translate }}</label> - <input class="submit btn" id='login_form_submit' type="submit" value="{{ 'Login_LogIn'|translate }}" + <input class="submit btn" id="login_form_submit" type="submit" value="{{ 'Login_LogIn'|translate }}" tabindex="100"/> </div> </div> diff --git a/plugins/Login/tests/UI/Login_spec.js b/plugins/Login/tests/UI/Login_spec.js index 84bbc33190..855973dbc4 100644 --- a/plugins/Login/tests/UI/Login_spec.js +++ b/plugins/Login/tests/UI/Login_spec.js @@ -15,10 +15,12 @@ describe("Login", function () { bruteForceLogUrl = "?module=Login&action=bruteForceLog", apiAuthUrl = "?module=API&method=UsersManager.getTokenAuth&format=json&userLogin=ovliverqueen&md5Password=" + md5Pass; - before(function () { + before(async function () { testEnvironment.testUseMockAuth = 0; testEnvironment.queryParamOverride = {date: "2012-01-01", period: "year"}; testEnvironment.save(); + + await page.clearCookies(); }); beforeEach(function () { @@ -27,12 +29,14 @@ describe("Login", function () { testEnvironment.save(); }); - after(function () { + after(async function () { testEnvironment.testUseMockAuth = 1; delete testEnvironment.bruteForceBlockIps; delete testEnvironment.bruteForceBlockThisIp; delete testEnvironment.queryParamOverride; testEnvironment.save(); + + await page.clearCookies(); }); afterEach(function () { @@ -43,114 +47,158 @@ describe("Login", function () { testEnvironment.save(); }); - it("should show error when trying to log in through login form", function (done) { + it("should show error when trying to log in through login form", async function () { testEnvironment.testUseMockAuth = 0; testEnvironment.bruteForceBlockThisIp = 1; delete testEnvironment.bruteForceBlockIps; delete testEnvironment.queryParamOverride; testEnvironment.save(); - expect.screenshot("bruteforcelog_blockedlogin").to.be.capture(function (page) { - page.load(""); - }, done); + await page.goto(""); + expect(await page.screenshot({ fullPage: true })).to.matchImage('bruteforcelog_blockedlogin'); }); - it("should load correctly", function (done) { - expect.screenshot("login_form").to.be.capture(function (page) { - page.load(""); - }, done); + it("should load correctly", async function() { + await page.goto(""); + await page.waitForNetworkIdle(); + await page.waitFor('input'); + await page.mouse.click(0, 0); + await page.waitFor(250); + + expect(await page.screenshot({ fullPage: true })).to.matchImage('login_form'); }); - it("should fail when incorrect credentials are supplied", function (done) { - expect.screenshot("login_fail").to.be.capture(function (page) { - page.sendKeys('#login_form_login', 'superUserLogin'); - page.sendKeys('#login_form_password', 'wrongpassword'); - page.click('#login_form_submit'); - }, done); + it("should fail when incorrect credentials are supplied", async function() { + await page.type('#login_form_login', 'superUserLogin'); + await page.type('#login_form_password', 'wrongpassword'); + await page.evaluate(function(){ + $('#login_form_submit').click(); + }); + await page.waitForNetworkIdle(); + await page.waitFor('.notification'); + await page.mouse.click(0, 0); + await page.waitFor(250); + + expect(await page.screenshot({ fullPage: true })).to.matchImage('login_fail'); }); - it("should redirect to Piwik when correct credentials are supplied", function (done) { - expect.current_page.contains("#dashboard", function (page) { - page.sendKeys("#login_form_login", "superUserLogin"); - page.sendKeys("#login_form_password", "superUserPass"); - page.click("#login_form_submit"); - }, done); + it("should redirect to Matomo when correct credentials are supplied", async function() { + await page.type("#login_form_login", "superUserLogin"); + await page.type("#login_form_password", "superUserPass"); + await page.evaluate(function(){ + $('#login_form_submit').click(); + }); + await page.waitForNetworkIdle(); + + // check dashboard is shown + await page.waitForSelector('#dashboard'); + await page.waitForNetworkIdle(); }); - it("should redirect to login when logout link clicked", function (done) { - expect.screenshot("login_form").to.be.capture("logout_form", function (page) { - page.click("nav .right .icon-sign-out"); - }, done); + it("should redirect to login when logout link clicked", async function() { + await page.click("nav .right .icon-sign-out"); + await page.waitForNetworkIdle(); + await page.waitFor('input'); + await page.mouse.click(0, 0); + await page.waitFor(250); + + expect(await page.screenshot({ fullPage: true })).to.matchImage('login_form_logout'); }); - it("login with email and password should work", function (done) { - expect.current_page.contains("#dashboard", function (page) { - page.sendKeys("#login_form_login", "hello@example.org"); - page.sendKeys("#login_form_password", "superUserPass"); - page.click("#login_form_submit"); - }, done); + it("login with email and password should work", async function() { + await page.type("#login_form_login", "hello@example.org"); + await page.type("#login_form_password", "superUserPass"); + await page.evaluate(function(){ + $('#login_form_submit').click(); + }); + + // check dashboard is shown + await page.waitForNetworkIdle(); + await page.waitForSelector('#dashboard'); }); - it("should display password reset form when forgot password link clicked", function (done) { - expect.screenshot("forgot_password").to.be.capture(function (page) { - page.click("nav .right .icon-sign-out"); - page.click("a#login_form_nav"); - }, done); + it("should display password reset form when forgot password link clicked", async function() { + await page.click("nav .right .icon-sign-out"); + await page.waitForNetworkIdle(); + await page.waitFor("a#login_form_nav"); + await page.click("a#login_form_nav"); + await page.waitForNetworkIdle(); + + expect(await page.screenshot({ fullPage: true })).to.matchImage('forgot_password'); }); - it("should show reset password form and error message on error", function (done) { - expect.screenshot("password_reset_error").to.be.capture(function (page) { - page.sendKeys("#reset_form_login", "superUserLogin"); - page.sendKeys("#reset_form_password", "superUserPass2"); - page.click("#reset_form_submit", 3000); - }, done); + it("should show reset password form and error message on error", async function() { + await page.type("#reset_form_login", "superUserLogin"); + await page.type("#reset_form_password", "superUserPass2"); + await page.click("#reset_form_submit"); + await page.waitForNetworkIdle(); + await page.waitFor('.notification'); + + expect(await page.screenshot({ fullPage: true })).to.matchImage('password_reset_error'); }); - it("should send email when password reset form submitted", function (done) { - expect.screenshot("password_reset").to.be.capture(function (page) { - page.reload(); - page.click("a#login_form_nav"); - page.sendKeys("#reset_form_login", "superUserLogin"); - page.sendKeys("#reset_form_password", "superUserPass2"); - page.sendKeys("#reset_form_password_bis", "superUserPass2"); - page.click("#reset_form_submit", 3000); - }, done); + it("should send email when password reset form submitted", async function() { + await page.reload(); + await page.click("a#login_form_nav"); + await page.type("#reset_form_login", "superUserLogin"); + await page.type("#reset_form_password", "superUserPass2"); + await page.type("#reset_form_password_bis", "superUserPass2"); + await page.click("#reset_form_submit"); + await page.waitForNetworkIdle(); + + expect(await page.screenshot({ fullPage: true })).to.matchImage('password_reset'); }); - it("should reset password when password reset link is clicked", function (done) { - expect.screenshot("password_reset_complete").to.be.capture(function (page) { - var expectedMailOutputFile = PIWIK_INCLUDE_PATH + '/tmp/Login.resetPassword.mail.json', - mailSent = JSON.parse(require("fs").read(expectedMailOutputFile)), - resetUrl = mailSent.contents.match(/http:\/\/.*/)[0]; + it("should reset password when password reset link is clicked", async function() { + var expectedMailOutputFile = PIWIK_INCLUDE_PATH + '/tmp/Login.resetPassword.mail.json', + fileContents = require("fs").readFileSync(expectedMailOutputFile), + mailSent = JSON.parse(fileContents), + resetUrl = mailSent.contents.match(/http:\/\/[^\s]+resetToken[^\s]+<\/p>/); - page.load(resetUrl); - }, done); + if (!resetUrl || !resetUrl[0]) { + throw new Error(`Could not find reset URL in email, captured mail info: ${fileContents}`) + } + resetUrl = resetUrl[0].replace(/<\/p>$/, ''); + + await page.goto(resetUrl); + await page.waitForNetworkIdle(); + + expect(await page.screenshot({ fullPage: true })).to.matchImage('password_reset_complete'); }); - it("should login successfully when new credentials used", function (done) { - expect.page("").contains("#dashboard", function (page) { - page.sendKeys("#login_form_login", "superUserLogin"); - page.sendKeys("#login_form_password", "superUserPass2"); - page.click("#login_form_submit"); - }, done); + it("should login successfully when new credentials used", async function() { + await page.type("#login_form_login", "superUserLogin"); + await page.type("#login_form_password", "superUserPass2"); + await page.evaluate(function(){ + $('#login_form_submit').click(); + }); + + // check dashboard is shown + await page.waitForNetworkIdle(); + await page.waitForSelector('#dashboard'); }); - it("should login successfully when formless login used", function (done) { - expect.page("").contains('#dashboard', /*'formless_login',*/ function (page) { - page.click("nav .right .icon-sign-out"); - page.load(formlessLoginUrl); - }, done); + it("should login successfully when formless login used", async function() { + await page.click("nav .right .icon-sign-out"); + await page.waitForNetworkIdle(); + await page.goto(formlessLoginUrl); + + // check dashboard is shown + await page.waitForNetworkIdle(); + await page.waitForSelector('#dashboard'); }); - it('should not show login page when ips whitelisted and ip is not matching', function (done) { - expect.screenshot('ip_not_whitelisted').to.be.captureSelector('.box', function (page) { - testEnvironment.overrideConfig('General', 'login_whitelist_ip', ['199.199.199.199']); - testEnvironment.save(); - page.load(''); - }, done); + it('should not show login page when ips whitelisted and ip is not matching', async function() { + testEnvironment.overrideConfig('General', 'login_whitelist_ip', ['199.199.199.199']); + testEnvironment.save(); + await page.goto(''); + await page.waitForNetworkIdle(); + + const element = await page.$('.box'); + expect(await element.screenshot()).to.matchImage('ip_not_whitelisted'); }); - it("should show brute force log url when there are no entries", function (done) { + it("should show brute force log url when there are no entries", async function () { testEnvironment.testUseMockAuth = 1; delete testEnvironment.queryParamOverride; delete testEnvironment.bruteForceBlockThisIp; @@ -158,44 +206,44 @@ describe("Login", function () { testEnvironment.overrideConfig('General', 'login_whitelist_ip', []); testEnvironment.save(); - expect.screenshot("bruteforcelog_noentries").to.be.capture(function (page) { - page.load(bruteForceLogUrl); - }, done); + await page.goto(bruteForceLogUrl); + + expect(await page.screenshot({ fullPage: true })).to.matchImage('bruteforcelog_noentries'); }); - it("should show brute force log url when there are entries", function (done) { + it("should show brute force log url when there are entries", async function () { testEnvironment.testUseMockAuth = 1; testEnvironment.bruteForceBlockIps = 1; delete testEnvironment.bruteForceBlockThisIp; delete testEnvironment.queryParamOverride; testEnvironment.save(); - expect.screenshot("bruteforcelog_withentries").to.be.capture(function (page) { - page.load(bruteForceLogUrl); - }, done); + await page.goto(bruteForceLogUrl); + + expect(await page.screenshot({ fullPage: true })).to.matchImage('bruteforcelog_withentries'); }); - it("should show error when trying to attempt a log in through API", function (done) { + it("should show error when trying to attempt a log in through API", async function () { testEnvironment.testUseMockAuth = 1; testEnvironment.bruteForceBlockThisIp = 1; delete testEnvironment.bruteForceBlockIps; delete testEnvironment.queryParamOverride; testEnvironment.save(); - expect.screenshot("bruteforcelog_blockedapi").to.be.capture(function (page) { - page.load(apiAuthUrl); - }, done); + await page.goto(apiAuthUrl); + + expect(await page.screenshot({ fullPage: true })).to.matchImage('bruteforcelog_blockedapi'); }); - it("should show error when trying to log in through logme", function (done) { + it("should show error when trying to log in through logme", async function () { testEnvironment.testUseMockAuth = 0; testEnvironment.bruteForceBlockThisIp = 1; delete testEnvironment.bruteForceBlockIps; delete testEnvironment.queryParamOverride; testEnvironment.save(); - expect.screenshot("bruteforcelog_blockedlogme").to.be.capture(function (page) { - page.load(formlessLoginUrl); - }, done); + await page.goto(formlessLoginUrl); + + expect(await page.screenshot({ fullPage: true })).to.matchImage('bruteforcelog_blockedlogme'); }); });
\ No newline at end of file diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedlogin.png b/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedlogin.png index 88958e2c47..d4aea14ed4 100644 --- a/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedlogin.png +++ b/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedlogin.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8593ba93dbb91fdc1bdad14635707d9b6b06b0344a6c931b4a55ebe3ee33dccb -size 51402 +oid sha256:8d3ca7cafa81a2bfa62f29e680b75baceb85229271a9360aa3bacd9609e719f4 +size 48989 diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedlogme.png b/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedlogme.png index 88958e2c47..d4aea14ed4 100644 --- a/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedlogme.png +++ b/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedlogme.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8593ba93dbb91fdc1bdad14635707d9b6b06b0344a6c931b4a55ebe3ee33dccb -size 51402 +oid sha256:8d3ca7cafa81a2bfa62f29e680b75baceb85229271a9360aa3bacd9609e719f4 +size 48989 diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_noentries.png b/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_noentries.png index 70bff45cd1..8cb22cd5c3 100644 --- a/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_noentries.png +++ b/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_noentries.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7c5beced282043e1249bc18867483839161f3d6721f275ed78f882538d2b4c38 -size 88777 +oid sha256:887fa42574f909fe2077428d67e6231cd636e8b2eb4350c642ee45973de64887 +size 87819 diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_withentries.png b/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_withentries.png index 6974907aba..c77fa662fd 100644 --- a/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_withentries.png +++ b/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_withentries.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5f88331f67e24bfa06930e6412c97c5c4c8e0f81771a4aa7d80ae2ddec1a184e -size 107892 +oid sha256:3afeba7796bf73bd38219259140df8256559f54451e2f29edf792ee5e9506c77 +size 105541 diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_forgot_password.png b/plugins/Login/tests/UI/expected-screenshots/Login_forgot_password.png index 97d5ce3d38..3d24a7b522 100644 --- a/plugins/Login/tests/UI/expected-screenshots/Login_forgot_password.png +++ b/plugins/Login/tests/UI/expected-screenshots/Login_forgot_password.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:83dd23dc44000c21a7b9b9b579a624bae3d117df132b9345a7f1e6486b3d56ae -size 31574 +oid sha256:29929740cf87fd450c6d56c72d6751f1e85d7e3e12b78894d3365b5abe642670 +size 30414 diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_ip_not_whitelisted.png b/plugins/Login/tests/UI/expected-screenshots/Login_ip_not_whitelisted.png index 43461ee0e8..5d228d1e95 100644 --- a/plugins/Login/tests/UI/expected-screenshots/Login_ip_not_whitelisted.png +++ b/plugins/Login/tests/UI/expected-screenshots/Login_ip_not_whitelisted.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:62ab95ecf00c2311e4c6fa32f24addb9149b5b863d82d96c29b3427a2a38141c -size 47443 +oid sha256:db6db569606a2685d6ce0a3a70c3ee6348516e0efca5d765bfe55b136335dcee +size 35222 diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_login_fail.png b/plugins/Login/tests/UI/expected-screenshots/Login_login_fail.png index a4a6605219..50dcebcf23 100644 --- a/plugins/Login/tests/UI/expected-screenshots/Login_login_fail.png +++ b/plugins/Login/tests/UI/expected-screenshots/Login_login_fail.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e1e11c1594b03553f9ad82e139e74a6f878cd62bcf1a2630cf53895b0d7961ff -size 33498 +oid sha256:2bf4825c1cc653b0aeca918670f56bbfe2c948dc2cb761a543ea2efaea49bb16 +size 32338 diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_login_form.png b/plugins/Login/tests/UI/expected-screenshots/Login_login_form.png index 38890beaad..e69acbf95a 100644 --- a/plugins/Login/tests/UI/expected-screenshots/Login_login_form.png +++ b/plugins/Login/tests/UI/expected-screenshots/Login_login_form.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cca33e7b83218f4c13f65fdbf845d05b5c798afc2ce74d0cc0596f4632955a2d -size 25570 +oid sha256:5cf56b7df49eb6ad15f32acbb44dd432d91bbce528698b97b632e1586af7d448 +size 24747 diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_login_form_logout.png b/plugins/Login/tests/UI/expected-screenshots/Login_login_form_logout.png new file mode 100644 index 0000000000..e69acbf95a --- /dev/null +++ b/plugins/Login/tests/UI/expected-screenshots/Login_login_form_logout.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cf56b7df49eb6ad15f32acbb44dd432d91bbce528698b97b632e1586af7d448 +size 24747 diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_password_reset.png b/plugins/Login/tests/UI/expected-screenshots/Login_password_reset.png index 2530357281..c0472d2130 100644 --- a/plugins/Login/tests/UI/expected-screenshots/Login_password_reset.png +++ b/plugins/Login/tests/UI/expected-screenshots/Login_password_reset.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bf9227950e5dd40eec1acf1b35edadab6921995e3a65a09548688d08285640ce -size 36488 +oid sha256:bcc5cb39a136e37dc65647b8d521ff31ebd58c857a38ecbb3e11b0fc6657cef3 +size 34925 diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_password_reset_complete.png b/plugins/Login/tests/UI/expected-screenshots/Login_password_reset_complete.png index 583d02d00f..de9130663e 100644 --- a/plugins/Login/tests/UI/expected-screenshots/Login_password_reset_complete.png +++ b/plugins/Login/tests/UI/expected-screenshots/Login_password_reset_complete.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a59f9aba1c7e16437d3df6a28ed0d4f28a64888080b2a878ff1f5055274df44e -size 30015 +oid sha256:e8bf83920ee47f8ac67d81a97840c286b4dd7456149d7b56457ee18659730519 +size 29453 diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_password_reset_error.png b/plugins/Login/tests/UI/expected-screenshots/Login_password_reset_error.png index 7c9d16258b..f177ae6bd4 100644 --- a/plugins/Login/tests/UI/expected-screenshots/Login_password_reset_error.png +++ b/plugins/Login/tests/UI/expected-screenshots/Login_password_reset_error.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a89dff1e76ef19aa8024fec566e4656035e1a642c32f250864e5cff2a1ac7aef -size 41881 +oid sha256:ec39dc81e0218843cb4f6ca13fd181c5be7a17c474c13c4721dbd910175065f8 +size 39431 |