Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F2527938
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
8 KB
Referenced Files
None
Subscribers
None
View Options
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
Details
Attached
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)
Attached To
Mode
R2 kolab
Attached
Detach File
Event Timeline
Log In to Comment