Changeset View
Changeset View
Standalone View
Standalone View
src/tests/Browser/Meet/RoomSetupTest.php
Show First 20 Lines • Show All 145 Lines • ▼ Show 20 Lines | public function testTwoUsersInARoom(): void | ||||
'@setup-status-message', | '@setup-status-message', | ||||
"The room is closed. Please, wait for the owner to start the session." | "The room is closed. Please, wait for the owner to start the session." | ||||
) | ) | ||||
->assertSeeIn('@setup-button', "I'm the owner"); | ->assertSeeIn('@setup-button', "I'm the owner"); | ||||
// In another window join the room as the owner (authenticate) | // In another window join the room as the owner (authenticate) | ||||
$browser->on(new RoomPage('john')) | $browser->on(new RoomPage('john')) | ||||
->assertSeeIn('@setup-button', "I'm the owner") | ->assertSeeIn('@setup-button', "I'm the owner") | ||||
->click('@setup-button') | ->clickWhenEnabled('@setup-button') | ||||
->assertMissing('@toolbar') | ->assertMissing('@toolbar') | ||||
->assertMissing('@menu') | ->assertMissing('@menu') | ||||
->assertMissing('@session') | ->assertMissing('@session') | ||||
->assertMissing('@chat') | ->assertMissing('@chat') | ||||
->assertMissing('@setup-form') | ->assertMissing('@setup-form') | ||||
->assertVisible('@login-form') | ->assertVisible('@login-form') | ||||
->submitLogon('john@kolab.org', 'simple123') | ->submitLogon('john@kolab.org', 'simple123') | ||||
->waitFor('@setup-form') | ->waitFor('@setup-form') | ||||
->assertMissing('@login-form') | ->assertMissing('@login-form') | ||||
->waitUntilMissing('@setup-status-message.loading') | ->waitUntilMissing('@setup-status-message.loading') | ||||
->waitFor('@setup-status-message') | ->waitFor('@setup-status-message') | ||||
->assertSeeIn('@setup-status-message', "The room is closed. It will be open for others after you join.") | ->assertSeeIn('@setup-status-message', "The room is closed. It will be open for others after you join.") | ||||
->assertSeeIn('@setup-button', "JOIN") | ->assertSeeIn('@setup-button', "JOIN") | ||||
->type('@setup-nickname-input', 'john') | ->type('@setup-nickname-input', 'john') | ||||
// Join the room (click the button twice, to make sure it does not | // Join the room (click the button twice, to make sure it does not | ||||
// produce redundant participants/subscribers in the room) | // produce redundant participants/subscribers in the room) | ||||
->click('@setup-button') | ->clickWhenEnabled('@setup-button') | ||||
->pause(10) | ->pause(10) | ||||
->click('@setup-button') | ->click('@setup-button') | ||||
->waitFor('@session') | ->waitFor('@session') | ||||
->assertMissing('@setup-form') | ->assertMissing('@setup-form') | ||||
->whenAvailable('div.meet-video.self', function (Browser $browser) { | ->whenAvailable('div.meet-video.self', function (Browser $browser) { | ||||
$browser->assertVisible('video') | $browser->waitFor('video') | ||||
->assertSeeIn('.meet-nickname', 'john') | ->assertSeeIn('.meet-nickname', 'john') | ||||
->assertVisible('.controls button.link-fullscreen') | ->assertVisible('.controls button.link-fullscreen') | ||||
->assertMissing('.controls button.link-audio') | ->assertMissing('.controls button.link-audio') | ||||
->assertMissing('.status .status-audio') | ->assertMissing('.status .status-audio') | ||||
->assertMissing('.status .status-video'); | ->assertMissing('.status .status-video'); | ||||
}) | }) | ||||
->within(new Menu(), function ($browser) { | ->within(new Menu(), function ($browser) { | ||||
$browser->assertMenuItems(['explore', 'blog', 'support', 'dashboard', 'logout']); | $browser->assertMenuItems(['explore', 'blog', 'support', 'dashboard', 'logout']); | ||||
}); | }); | ||||
if ($browser->isDesktop()) { | if ($browser->isDesktop()) { | ||||
$browser->within(new Menu('footer'), function ($browser) { | $browser->within(new Menu('footer'), function ($browser) { | ||||
$browser->assertMenuItems(['explore', 'blog', 'support', 'tos', 'dashboard', 'logout']); | $browser->assertMenuItems(['explore', 'blog', 'support', 'tos', 'dashboard', 'logout']); | ||||
}); | }); | ||||
} | } | ||||
// After the owner "opened the room" guest should be able to join | // After the owner "opened the room" guest should be able to join | ||||
$guest->waitUntilMissing('@setup-status-message', 10) | $guest->waitUntilMissing('@setup-status-message', 10) | ||||
->assertSeeIn('@setup-button', "JOIN") | ->assertSeeIn('@setup-button', "JOIN") | ||||
// Join the room, disable cam/mic | // Join the room, disable cam/mic | ||||
->select('@setup-mic-select', '') | ->select('@setup-mic-select', '') | ||||
//->select('@setup-cam-select', '') | //->select('@setup-cam-select', '') | ||||
->click('@setup-button') | ->clickWhenEnabled('@setup-button') | ||||
->waitFor('@session') | ->waitFor('@session') | ||||
->assertMissing('@setup-form') | ->assertMissing('@setup-form') | ||||
->whenAvailable('div.meet-video.self', function (Browser $browser) { | ->whenAvailable('div.meet-video.self', function (Browser $browser) { | ||||
$browser->assertVisible('video') | $browser->waitFor('video') | ||||
->assertVisible('.meet-nickname') | ->assertVisible('.meet-nickname') | ||||
->assertVisible('.controls button.link-fullscreen') | ->assertVisible('.controls button.link-fullscreen') | ||||
->assertMissing('.controls button.link-audio') | ->assertMissing('.controls button.link-audio') | ||||
->assertVisible('.status .status-audio') | ->assertVisible('.status .status-audio') | ||||
->assertMissing('.status .status-video'); | ->assertMissing('.status .status-video'); | ||||
}) | }) | ||||
->whenAvailable('div.meet-video:not(.self)', function (Browser $browser) { | ->whenAvailable('div.meet-video:not(.self)', function (Browser $browser) { | ||||
$browser->assertVisible('video') | $browser->waitFor('video') | ||||
->assertSeeIn('.meet-nickname', 'john') | ->assertSeeIn('.meet-nickname', 'john') | ||||
->assertVisible('.controls button.link-fullscreen') | ->assertVisible('.controls button.link-fullscreen') | ||||
->assertVisible('.controls button.link-audio') | ->assertVisible('.controls button.link-audio') | ||||
->assertMissing('.status .status-audio') | ->assertMissing('.status .status-audio') | ||||
->assertMissing('.status .status-video'); | ->assertMissing('.status .status-video'); | ||||
}) | }) | ||||
->assertElementsCount('@session div.meet-video', 2) | ->assertElementsCount('@session div.meet-video', 2) | ||||
->within(new Menu(), function ($browser) { | ->within(new Menu(), function ($browser) { | ||||
$browser->assertMenuItems(['explore', 'blog', 'support', 'signup', 'login']); | $browser->assertMenuItems(['explore', 'blog', 'support', 'signup', 'login']); | ||||
}); | }); | ||||
if ($guest->isDesktop()) { | if ($guest->isDesktop()) { | ||||
$guest->within(new Menu('footer'), function ($browser) { | $guest->within(new Menu('footer'), function ($browser) { | ||||
$browser->assertMenuItems(['explore', 'blog', 'support', 'tos', 'signup', 'login']); | $browser->assertMenuItems(['explore', 'blog', 'support', 'tos', 'signup', 'login']); | ||||
}); | }); | ||||
} | } | ||||
// Check guest's elements in the owner's window | // Check guest's elements in the owner's window | ||||
$browser | $browser | ||||
->whenAvailable('div.meet-video:not(.self)', function (Browser $browser) { | ->whenAvailable('div.meet-video:not(.self)', function (Browser $browser) { | ||||
$browser->assertVisible('video') | $browser->waitFor('video') | ||||
->assertVisible('.meet-nickname') | ->assertVisible('.meet-nickname') | ||||
->assertVisible('.controls button.link-fullscreen') | ->assertVisible('.controls button.link-fullscreen') | ||||
->assertVisible('.controls button.link-audio') | ->assertVisible('.controls button.link-audio') | ||||
->assertVisible('.status .status-audio') | ->assertVisible('.status .status-audio') | ||||
->assertMissing('.status .status-video'); | ->assertMissing('.status .status-video'); | ||||
}) | }) | ||||
->assertElementsCount('@session div.meet-video', 2); | ->assertElementsCount('@session div.meet-video', 2); | ||||
Show All 15 Lines | public function testTwoUsersInARoom(): void | ||||
->assertMissing('@login-form') | ->assertMissing('@login-form') | ||||
->waitFor('@setup-form') | ->waitFor('@setup-form') | ||||
->waitUntilMissing('@setup-status-message.loading') | ->waitUntilMissing('@setup-status-message.loading') | ||||
->assertMissing('@setup-status-message') | ->assertMissing('@setup-status-message') | ||||
->assertSeeIn('@setup-button', "JOIN") | ->assertSeeIn('@setup-button', "JOIN") | ||||
// Join the room, disable cam/mic | // Join the room, disable cam/mic | ||||
->select('@setup-mic-select', '') | ->select('@setup-mic-select', '') | ||||
//->select('@setup-cam-select', '') | //->select('@setup-cam-select', '') | ||||
->click('@setup-button') | ->clickWhenEnabled('@setup-button') | ||||
->waitFor('@session'); | ->waitFor('@session'); | ||||
// Leave the room as the room owner | // Leave the room as the room owner | ||||
// TODO: Test leaving the room by closing the browser window, | // TODO: Test leaving the room by closing the browser window, | ||||
// it should not destroy the session | // it should not destroy the session | ||||
$browser->click('@menu button.link-logout') | $browser->click('@menu button.link-logout') | ||||
->waitForLocation('/dashboard'); | ->waitForLocation('/dashboard'); | ||||
Show All 24 Lines | public function testSubscribers(): void | ||||
// Join the room as the owner | // Join the room as the owner | ||||
$browser->visit(new RoomPage('john')) | $browser->visit(new RoomPage('john')) | ||||
->waitFor('@setup-form') | ->waitFor('@setup-form') | ||||
->waitUntilMissing('@setup-status-message.loading') | ->waitUntilMissing('@setup-status-message.loading') | ||||
->waitFor('@setup-status-message') | ->waitFor('@setup-status-message') | ||||
->type('@setup-nickname-input', 'john') | ->type('@setup-nickname-input', 'john') | ||||
->select('@setup-mic-select', '') | ->select('@setup-mic-select', '') | ||||
->select('@setup-cam-select', '') | ->select('@setup-cam-select', '') | ||||
->click('@setup-button') | ->clickWhenEnabled('@setup-button') | ||||
->waitFor('@session') | ->waitFor('@session') | ||||
->assertMissing('@setup-form') | ->assertMissing('@setup-form') | ||||
->whenAvailable('@subscribers .meet-subscriber.self', function (Browser $browser) { | ->whenAvailable('@subscribers .meet-subscriber.self', function (Browser $browser) { | ||||
$browser->assertSeeIn('.meet-nickname', 'john'); | $browser->assertSeeIn('.meet-nickname', 'john'); | ||||
}) | }) | ||||
->assertElementsCount('@session div.meet-video', 0) | ->assertElementsCount('@session div.meet-video', 0) | ||||
->assertElementsCount('@session video', 0) | ->assertElementsCount('@session video', 0) | ||||
->assertElementsCount('@session .meet-subscriber', 1) | ->assertElementsCount('@session .meet-subscriber', 1) | ||||
Show All 10 Lines | public function testSubscribers(): void | ||||
// After the owner "opened the room" guest should be able to join | // After the owner "opened the room" guest should be able to join | ||||
// In one browser window act as a guest | // In one browser window act as a guest | ||||
$guest->visit(new RoomPage('john')) | $guest->visit(new RoomPage('john')) | ||||
->waitUntilMissing('@setup-status-message', 10) | ->waitUntilMissing('@setup-status-message', 10) | ||||
->assertSeeIn('@setup-button', "JOIN") | ->assertSeeIn('@setup-button', "JOIN") | ||||
// Join the room, disable cam/mic | // Join the room, disable cam/mic | ||||
->select('@setup-mic-select', '') | ->select('@setup-mic-select', '') | ||||
->select('@setup-cam-select', '') | ->select('@setup-cam-select', '') | ||||
->click('@setup-button') | ->clickWhenEnabled('@setup-button') | ||||
->waitFor('@session') | ->waitFor('@session') | ||||
->assertMissing('@setup-form') | ->assertMissing('@setup-form') | ||||
->whenAvailable('@subscribers .meet-subscriber.self', function (Browser $browser) { | ->whenAvailable('@subscribers .meet-subscriber.self', function (Browser $browser) { | ||||
$browser->assertVisible('.meet-nickname'); | $browser->assertVisible('.meet-nickname'); | ||||
}) | }) | ||||
->whenAvailable('@subscribers .meet-subscriber:not(.self)', function (Browser $browser) { | ->whenAvailable('@subscribers .meet-subscriber:not(.self)', function (Browser $browser) { | ||||
$browser->assertSeeIn('.meet-nickname', 'john'); | $browser->assertSeeIn('.meet-nickname', 'john'); | ||||
}) | }) | ||||
Show All 32 Lines |