From 2037f2612bda248f07a95f59b91bdf67d762dd2d Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Fri, 17 Jan 2020 16:33:05 +0100 Subject: [PATCH] Tests: Fix testing with create_default_folders=true --- tests/Browser/Browser.php | 14 ++++++++++++++ tests/Browser/Settings/Folders.php | 31 +++++++++++++++++++++--------- 2 files changed, 36 insertions(+), 9 deletions(-) diff --git a/tests/Browser/Browser.php b/tests/Browser/Browser.php index 697f1d6b0..5cb1e27da 100644 --- a/tests/Browser/Browser.php +++ b/tests/Browser/Browser.php @@ -57,6 +57,20 @@ class Browser extends \Laravel\Dusk\Browser return $this; } + /** + * Assert that the given element has specified class assigned. + */ + public function assertHasClass($selector, $class_name) + { + $fullSelector = $this->resolver->format($selector); + $element = $this->resolver->findOrFail($selector); + $classes = explode(' ', (string) $element->getAttribute('class')); + + Assert::assertContains($class_name, $classes); + + return $this; + } + /** * Assert Task menu state */ diff --git a/tests/Browser/Settings/Folders.php b/tests/Browser/Settings/Folders.php index 2a027d0ab..d9bfb411d 100644 --- a/tests/Browser/Settings/Folders.php +++ b/tests/Browser/Settings/Folders.php @@ -45,10 +45,23 @@ class Folders extends \Tests\Browser\TestCase // Folders list $browser->with('#subscription-table', function ($browser) { - $browser->assertElementsCount('li', 1) - ->assertVisible('li.mailbox.inbox') - ->assertSeeIn('li.mailbox.inbox', 'Inbox') - ->assertPresent('li [type=checkbox][disabled]'); + $browser->assertElementsCount('li', 5) + // Note: first li element is root which is hidden in Elastic + ->assertHasClass('li:nth-child(2)', 'inbox') + ->assertSeeIn('li:nth-child(2)', 'Inbox') + ->assertPresent('li:nth-child(2) [type=checkbox][disabled]') + ->assertHasClass('li:nth-child(3)', 'drafts') + ->assertSeeIn('li:nth-child(3)', 'Drafts') + ->assertPresent('li:nth-child(3) [type=checkbox][disabled]') + ->assertHasClass('li:nth-child(4)', 'sent') + ->assertSeeIn('li:nth-child(4)', 'Sent') + ->assertPresent('li:nth-child(4) [type=checkbox][disabled]') + ->assertHasClass('li:nth-child(5)', 'junk') + ->assertSeeIn('li:nth-child(5)', 'Junk') + ->assertPresent('li:nth-child(5) [type=checkbox][disabled]') + ->assertHasClass('li:nth-child(6)', 'trash') + ->assertSeeIn('li:nth-child(6)', 'Trash') + ->assertPresent('li:nth-child(6) [type=checkbox][disabled]'); }); }); } @@ -107,10 +120,10 @@ class Folders extends \Tests\Browser\TestCase // Folders list $browser->with('#subscription-table', function ($browser) { // Note: li.root is hidden in Elastic - $browser->waitFor('li.mailbox:nth-child(3)') - ->assertElementsCount('li', 2) - ->assertPresent('li.mailbox:nth-child(3) [type=checkbox]:not([disabled])') - ->click('li.mailbox:nth-child(3)'); + $browser->waitFor('li.mailbox:nth-child(7)') + ->assertElementsCount('li', 6) + ->assertPresent('li.mailbox:nth-child(7) [type=checkbox]:not([disabled])') + ->click('li.mailbox:nth-child(7)'); }); if ($browser->isPhone()) { @@ -128,7 +141,7 @@ class Folders extends \Tests\Browser\TestCase ->waitFor('#subscription-table'); } - $browser->setCheckboxState('#subscription-table li:nth-child(3) input', false) + $browser->setCheckboxState('#subscription-table li:nth-child(7) input', false) ->waitForMessage('confirmation', 'Folder successfully unsubscribed.'); }); }