Page MenuHomePhorge

No OneTemporary

Size
8 KB
Referenced Files
None
Subscribers
None
diff --git a/src/tests/Browser/Meet/RoomQATest.php b/src/tests/Browser/Meet/RoomQATest.php
index 66a5ce2e..dbf5c233 100644
--- a/src/tests/Browser/Meet/RoomQATest.php
+++ b/src/tests/Browser/Meet/RoomQATest.php
@@ -1,139 +1,139 @@
<?php
namespace Tests\Browser\Meet;
use App\OpenVidu\Room;
use Tests\Browser;
use Tests\Browser\Pages\Meet\Room as RoomPage;
use Tests\TestCaseDusk;
class RoomQATest extends TestCaseDusk
{
/**
* {@inheritDoc}
*/
public function setUp(): void
{
parent::setUp();
$this->setupTestRoom();
}
public function tearDown(): void
{
$this->resetTestRoom();
parent::tearDown();
}
/**
* Test Q&A queue
*
* @group openvidu
*/
public function testQA(): void
{
$this->browse(function (Browser $owner, Browser $guest1, Browser $guest2) {
// Join the room as an owner (authenticate)
$owner->visit(new RoomPage('john'))
->click('@setup-button')
->submitLogon('john@kolab.org', 'simple123')
->waitFor('@setup-form')
->waitUntilMissing('@setup-status-message.loading')
->select('@setup-mic-select', '')
->select('@setup-cam-select', '')
->type('@setup-nickname-input', 'John')
->clickWhenEnabled('@setup-button')
->waitFor('@session');
// In another browser act as a guest (1)
$guest1->visit(new RoomPage('john'))
->waitFor('@setup-form')
->waitUntilMissing('@setup-status-message.loading')
->assertMissing('@setup-status-message')
->assertSeeIn('@setup-button', "JOIN")
// Join the room, disable cam/mic
->select('@setup-mic-select', '')
->select('@setup-cam-select', '')
->type('@setup-nickname-input', 'Guest1')
->clickWhenEnabled('@setup-button')
->waitFor('@session');
// Assert current UI state
$owner->assertToolbarButtonState('hand', RoomPage::BUTTON_INACTIVE | RoomPage::BUTTON_ENABLED)
->waitFor('div.meet-subscriber.self')
->assertMissing('@queue')
->click('@menu button.link-hand')
->waitFor('@queue .dropdown.self.moderated')
->assertSeeIn('@queue .dropdown.self.moderated', 'John')
->assertToolbarButtonState('hand', RoomPage::BUTTON_ACTIVE | RoomPage::BUTTON_ENABLED);
// Assert current UI state
$guest1->waitFor('@queue .dropdown')
->assertSeeIn('@queue .dropdown', 'John')
->assertElementsCount('@queue .dropdown', 1)
->waitFor('div.meet-subscriber.self')
->click('@menu button.link-hand')
->waitFor('@queue .dropdown.self')
->assertSeeIn('@queue .dropdown.self', 'Guest1')
->assertElementsCount('@queue .dropdown', 2)
->click('@menu button.link-hand')
->waitUntilMissing('@queue .dropdown.self')
->assertElementsCount('@queue .dropdown', 1)
->assertToolbarButtonState('hand', RoomPage::BUTTON_INACTIVE | RoomPage::BUTTON_ENABLED);
// In another browser act as a guest (2)
$guest2->visit(new RoomPage('john'))
->waitFor('@setup-form')
->waitUntilMissing('@setup-status-message.loading')
->assertMissing('@setup-status-message')
->assertSeeIn('@setup-button', "JOIN")
->type('@setup-nickname-input', 'Guest2')
->clickWhenEnabled('@setup-button')
->waitFor('@queue .dropdown')
- ->assertSeeIn('@queue .dropdown', 'John')
+ ->waitForTextIn('@queue .dropdown', 'John')
->assertElementsCount('@queue .dropdown', 1)
->assertMissing('@menu button.link-hand');
// Demote the guest (2) to subscriber, assert Hand button in toolbar
$owner->click('@session div.meet-video .meet-nickname')
->whenAvailable('@session div.meet-video .dropdown-menu', function ($browser) {
$browser->click('.action-role-publisher input');
});
// Guest (2) rises his hand
$guest2->waitUntilMissing('@session .meet-video')
->waitFor('@menu button.link-hand')
->assertToolbarButtonState('hand', RoomPage::BUTTON_INACTIVE | RoomPage::BUTTON_ENABLED)
->click('@menu button.link-hand')
->waitFor('@queue .dropdown.self')
->assertElementsCount('@queue .dropdown', 2);
// Promote guest (2) to publisher
$owner->waitFor('@queue .dropdown:not(.self)')
->pause(8000) // wait until it's not moving, otherwise click() will be possible
->click('@queue .dropdown:not(.self)')
->whenAvailable('@queue .dropdown:not(.self) .dropdown-menu', function ($browser) {
$browser->click('.action-role-publisher input');
})
->waitUntilMissing('@queue .dropdown:not(.self)')
->waitFor('@session .meet-video');
$guest1->waitFor('@session .meet-video')
->assertElementsCount('@queue .dropdown', 1);
$guest2->waitFor('@session .meet-video')
->waitUntilMissing('@queue .dropdown.self')
->assertElementsCount('@queue .dropdown', 1);
// Finally, do the same with the owner (last in the queue)
$owner->click('@queue .dropdown.self')
->whenAvailable('@queue .dropdown.self .dropdown-menu', function ($browser) {
$browser->click('.action-role-publisher input');
})
->waitUntilMissing('@queue')
->waitFor('@session .meet-video.self');
$guest1->waitUntilMissing('@queue');
$guest2->waitUntilMissing('@queue');
});
}
}
diff --git a/src/tests/Browser/SupportTest.php b/src/tests/Browser/SupportTest.php
index e9e7651b..ff92cdd4 100644
--- a/src/tests/Browser/SupportTest.php
+++ b/src/tests/Browser/SupportTest.php
@@ -1,56 +1,56 @@
<?php
namespace Tests\Browser;
use Tests\Browser;
use Tests\Browser\Components\Dialog;
use Tests\Browser\Components\Menu;
use Tests\Browser\Components\Toast;
use Tests\TestCaseDusk;
class SupportTest extends TestCaseDusk
{
/**
* Test support contact form
*/
public function testSupportForm(): void
{
$this->browse(function (Browser $browser) {
$browser->visit('/')
->within(new Menu(), function ($browser) {
$browser->clickMenuItem('support');
})
->waitFor('#support')
->assertSeeIn('.card-title', 'Contact Support')
- ->assertSeeIn('a.btn-info', 'Contact Support')
- ->click('a.btn-info')
+ ->assertSeeIn('a.btn-primary', 'Contact Support')
+ ->click('a.btn-primary')
->with(new Dialog('#support-dialog'), function (Browser $browser) {
$browser->assertSeeIn('@title', 'Contact Support')
->assertFocused('#support-user')
->assertSeeIn('@button-cancel', 'Cancel')
->assertSeeIn('@button-action', 'Submit')
->assertVisible('#support-name')
->assertVisible('#support-email')
->assertVisible('#support-summary')
->assertVisible('#support-body')
->type('#support-email', 'email@address.com')
->type('#support-summary', 'Summary')
->type('#support-body', 'Body')
->click('@button-cancel');
})
->assertMissing('#support-dialog')
- ->click('a.btn-info')
+ ->click('a.btn-primary')
->with(new Dialog('#support-dialog'), function (Browser $browser) {
$browser->assertSeeIn('@title', 'Contact Support')
->assertFocused('#support-user')
->assertValue('#support-email', 'email@address.com')
->assertValue('#support-summary', 'Summary')
->assertValue('#support-body', 'Body')
->click('@button-action');
})
// Note: This line assumes SUPPORT_EMAIL is not set in config
->assertToast(Toast::TYPE_ERROR, 'Failed to submit the support request')
->assertVisible('#support-dialog');
});
}
}

File Metadata

Mime Type
text/x-diff
Expires
Sat, Jan 31, 7:25 PM (1 d, 13 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
426449
Default Alt Text
(8 KB)

Event Timeline