Changeset View
Changeset View
Standalone View
Standalone View
src/tests/Browser/Meet/RoomModeratorTest.php
<?php | <?php | ||||
namespace Tests\Browser\Meet; | namespace Tests\Browser\Meet; | ||||
use App\OpenVidu\Room; | use App\Meet\Room; | ||||
use Tests\Browser; | use Tests\Browser; | ||||
use Tests\Browser\Components\Dialog; | use Tests\Browser\Components\Dialog; | ||||
use Tests\Browser\Components\Menu; | use Tests\Browser\Components\Menu; | ||||
use Tests\Browser\Pages\Meet\Room as RoomPage; | use Tests\Browser\Pages\Meet\Room as RoomPage; | ||||
use Tests\TestCaseDusk; | use Tests\TestCaseDusk; | ||||
class RoomModeratorTest extends TestCaseDusk | class RoomModeratorTest extends TestCaseDusk | ||||
{ | { | ||||
Show All 10 Lines | class RoomModeratorTest extends TestCaseDusk | ||||
{ | { | ||||
$this->resetTestRoom(); | $this->resetTestRoom(); | ||||
parent::tearDown(); | parent::tearDown(); | ||||
} | } | ||||
/** | /** | ||||
* Test three users in a room, one will be promoted/demoted to/from a moderator | * Test three users in a room, one will be promoted/demoted to/from a moderator | ||||
* | * | ||||
* @group openvidu | * @group meet | ||||
*/ | */ | ||||
public function testModeratorPromotion(): void | public function testModeratorPromotion(): void | ||||
{ | { | ||||
$this->browse(function (Browser $browser, Browser $guest1, Browser $guest2) { | $this->browse(function (Browser $browser, Browser $guest1, Browser $guest2) { | ||||
// In one browser window join as a room owner | // In one browser window join as a room owner | ||||
$browser->visit(new RoomPage('john')) | $browser->visit(new RoomPage('john')) | ||||
->click('@setup-button') | ->click('@setup-button') | ||||
->submitLogon('john@kolab.org', 'simple123') | ->submitLogon('john@kolab.org', 'simple123') | ||||
Show All 40 Lines | public function testModeratorPromotion(): void | ||||
->whenAvailable('@session div.meet-subscriber.self .dropdown-menu', function (Browser $browser) { | ->whenAvailable('@session div.meet-subscriber.self .dropdown-menu', function (Browser $browser) { | ||||
$browser->assertMissing('.permissions'); | $browser->assertMissing('.permissions'); | ||||
}) | }) | ||||
->click('@session div.meet-subscriber:not(.self) .meet-nickname') | ->click('@session div.meet-subscriber:not(.self) .meet-nickname') | ||||
->assertMissing('.dropdown-menu'); | ->assertMissing('.dropdown-menu'); | ||||
$guest2->waitFor('@session video') | $guest2->waitFor('@session video') | ||||
->assertVisible('@session div.meet-video svg.user') // self | ->assertVisible('@session div.meet-video svg.user') // self | ||||
->assertMissing('@session div.meet-video svg.moderator'); // self | ->assertMissing('@session div.meet-video svg.moderator') // self | ||||
/* | // the following 4 assertions used to be flaky on openvidu | ||||
it does not work because the order is different all the time | // because the order is different all the time | ||||
->assertMissing('@session div.meet-subscriber:nth-child(1) svg.user') // owner | ->assertMissing('@session div.meet-subscriber:nth-child(1) svg.user') // owner | ||||
->assertVisible('@session div.meet-subscriber:nth-child(1) svg.moderator') // owner | ->assertVisible('@session div.meet-subscriber:nth-child(1) svg.moderator') // owner | ||||
->assertVisible('@session div.meet-subscriber:nth-child(2) svg.user') // guest1 | ->assertVisible('@session div.meet-subscriber:nth-child(2) svg.user') // guest1 | ||||
->assertMissing('@session div.meet-subscriber:nth-child(2) svg.moderator'); // guest1 | ->assertMissing('@session div.meet-subscriber:nth-child(2) svg.moderator'); // guest1 | ||||
*/ | |||||
// Promote guest1 to a moderator | // Promote guest1 to a moderator | ||||
$browser->waitFor('@session video') | $browser->waitFor('@session video') | ||||
->assertMissing('@session div.meet-subscriber.self svg.user') // self | ->assertMissing('@session div.meet-subscriber.self svg.user') // self | ||||
->assertVisible('@session div.meet-subscriber.self svg.moderator') // self | ->assertVisible('@session div.meet-subscriber.self svg.moderator') // self | ||||
->click('@session div.meet-subscriber.self .meet-nickname') | ->click('@session div.meet-subscriber.self .meet-nickname') | ||||
->whenAvailable('@session div.meet-subscriber.self .dropdown-menu', function (Browser $browser) { | ->whenAvailable('@session div.meet-subscriber.self .dropdown-menu', function (Browser $browser) { | ||||
$browser->assertChecked('.action-role-moderator input') | $browser->assertChecked('.action-role-moderator input') | ||||
▲ Show 20 Lines • Show All 64 Lines • Show Last 20 Lines |