Page MenuHomePhorge

D2044.1775206348.diff
No OneTemporary

Authored By
Unknown
Size
15 KB
Referenced Files
None
Subscribers
None

D2044.1775206348.diff

diff --git a/src/resources/vue/Meet/Room.vue b/src/resources/vue/Meet/Room.vue
--- a/src/resources/vue/Meet/Room.vue
+++ b/src/resources/vue/Meet/Room.vue
@@ -33,7 +33,7 @@
<div class="card-body">
<div class="card-title">Set up your session</div>
<div class="card-text">
- <form class="setup-form row">
+ <form class="setup-form row" @submit.prevent="joinSession">
<div id="setup-preview" class="col-sm-6 mb-3 mb-sm-0">
<video class="rounded"></video>
<div class="volume"><div class="bar"></div></div>
@@ -70,8 +70,7 @@
<input type="password" class="form-control" id="setup-password" v-model="password" placeholder="Password">
</div>
<div class="mt-3">
- <button type="button" id="join-button"
- @click="joinSession"
+ <button type="submit" id="join-button"
:class="'btn w-100 btn-' + (isRoomReady() ? 'success' : 'primary')"
>
<span v-if="isRoomReady()">JOIN NOW</span>
@@ -370,6 +369,12 @@
},
// Entering the room
joinSession() {
+ // The form can be submitted not only via the submit button,
+ // make sure the submit is allowed
+ if ($('#meet-setup [type=submit]').prop('disabled')) {
+ return;
+ }
+
if (this.roomState == 323) {
$('#meet-setup').addClass('hidden')
$('#meet-auth').removeClass('hidden')
diff --git a/src/tests/Browser.php b/src/tests/Browser.php
--- a/src/tests/Browser.php
+++ b/src/tests/Browser.php
@@ -165,6 +165,14 @@
}
/**
+ * Wait until a button becomes enabled and click it
+ */
+ public function clickWhenEnabled($selector)
+ {
+ return $this->waitFor($selector . ':not([disabled])')->click($selector);
+ }
+
+ /**
* Check if in Phone mode
*/
public static function isPhone()
diff --git a/src/tests/Browser/Meet/RoomControlsTest.php b/src/tests/Browser/Meet/RoomControlsTest.php
--- a/src/tests/Browser/Meet/RoomControlsTest.php
+++ b/src/tests/Browser/Meet/RoomControlsTest.php
@@ -106,7 +106,7 @@
->waitFor('@setup-form')
->waitUntilMissing('@setup-status-message.loading')
->type('@setup-nickname-input', 'john')
- ->click('@setup-button')
+ ->keys('@setup-nickname-input', '{enter}') // Test form submit with Enter key
->waitFor('@session');
// In another browser act as a guest
@@ -118,7 +118,7 @@
// Join the room, disable cam/mic
->select('@setup-mic-select', '')
//->select('@setup-cam-select', '')
- ->click('@setup-button')
+ ->clickWhenEnabled('@setup-button')
->waitFor('@session');
// Assert current UI state
@@ -132,7 +132,7 @@
'logout' => RoomPage::BUTTON_ACTIVE | RoomPage::BUTTON_ENABLED,
])
->whenAvailable('div.meet-video.self', function (Browser $browser) {
- $browser->assertVisible('video')
+ $browser->waitFor('video')
->assertAudioMuted('video', true)
->assertSeeIn('.meet-nickname', 'john')
->assertVisible('.controls button.link-fullscreen')
@@ -141,7 +141,7 @@
->assertMissing('.status .status-video');
})
->whenAvailable('div.meet-video:not(.self)', function (Browser $browser) {
- $browser->assertVisible('video')
+ $browser->waitFor('video')
->assertVisible('.meet-nickname')
->assertVisible('.controls button.link-fullscreen')
->assertVisible('.controls button.link-audio')
@@ -160,7 +160,7 @@
'logout' => RoomPage::BUTTON_ACTIVE | RoomPage::BUTTON_ENABLED,
])
->whenAvailable('div.meet-video:not(.self)', function (Browser $browser) {
- $browser->assertVisible('video')
+ $browser->waitFor('video')
->assertSeeIn('.meet-nickname', 'john')
->assertVisible('.controls button.link-fullscreen')
->assertVisible('.controls button.link-audio')
@@ -168,7 +168,7 @@
->assertMissing('.status .status-video');
})
->whenAvailable('div.meet-video.self', function (Browser $browser) {
- $browser->assertVisible('video')
+ $browser->waitFor('video')
->assertVisible('.controls button.link-fullscreen')
->assertMissing('.controls button.link-audio')
->assertVisible('.status .status-audio')
@@ -249,7 +249,7 @@
->waitFor('@setup-form')
->waitUntilMissing('@setup-status-message.loading')
->type('@setup-nickname-input', 'john')
- ->click('@setup-button')
+ ->clickWhenEnabled('@setup-button')
->waitFor('@session');
// In another browser act as a guest
@@ -261,7 +261,7 @@
// Join the room, disable cam/mic
->select('@setup-mic-select', '')
// ->select('@setup-cam-select', '')
- ->click('@setup-button')
+ ->clickWhenEnabled('@setup-button')
->waitFor('@session');
// Test chat elements
@@ -352,7 +352,7 @@
->waitFor('@setup-form')
->waitUntilMissing('@setup-status-message.loading')
->type('@setup-nickname-input', 'john')
- ->click('@setup-button')
+ ->clickWhenEnabled('@setup-button')
->waitFor('@session');
// In another browser act as a guest
@@ -362,7 +362,7 @@
// Join the room, disable cam/mic
->select('@setup-mic-select', '')
->select('@setup-cam-select', '')
- ->click('@setup-button')
+ ->clickWhenEnabled('@setup-button')
->waitFor('@session');
// Test screen sharing
@@ -370,7 +370,7 @@
->assertElementsCount('@session div.meet-video', 1)
->click('@menu button.link-screen')
->whenAvailable('div.meet-video:not(.self)', function (Browser $browser) {
- $browser->assertVisible('video')
+ $browser->waitFor('video')
->assertSeeIn('.meet-nickname', 'john')
->assertVisible('.controls button.link-fullscreen')
->assertVisible('.controls button.link-audio')
@@ -383,7 +383,7 @@
$guest
->whenAvailable('div.meet-video:nth-child(3)', function (Browser $browser) {
- $browser->assertVisible('video')
+ $browser->waitFor('video')
->assertSeeIn('.meet-nickname', 'john')
->assertVisible('.controls button.link-fullscreen')
->assertVisible('.controls button.link-audio')
diff --git a/src/tests/Browser/Meet/RoomSecurityTest.php b/src/tests/Browser/Meet/RoomSecurityTest.php
--- a/src/tests/Browser/Meet/RoomSecurityTest.php
+++ b/src/tests/Browser/Meet/RoomSecurityTest.php
@@ -56,7 +56,7 @@
->waitFor('@setup-form')
->waitUntilMissing('@setup-status-message.loading')
->assertMissing('@setup-password-input')
- ->click('@setup-button')
+ ->clickWhenEnabled('@setup-button')
->waitFor('@session')
// Enter Security option dialog
->click('@menu button.link-security')
@@ -100,11 +100,11 @@
->assertValue('@setup-password-input', '')
->assertSeeIn('@setup-button', "JOIN")
// Try to join w/o password
- ->click('@setup-button')
+ ->clickWhenEnabled('@setup-button')
->waitFor('#setup-password.is-invalid')
// Try to join with a valid password
->type('#setup-password', 'pass')
- ->click('@setup-button')
+ ->clickWhenEnabled('@setup-button')
->waitFor('@session');
// Test removing the password
@@ -149,7 +149,7 @@
->waitFor('@setup-form')
->waitUntilMissing('@setup-status-message.loading')
->type('@setup-nickname-input', 'John')
- ->click('@setup-button')
+ ->clickWhenEnabled('@setup-button')
->waitFor('@session')
// Enter Security option dialog
->click('@menu button.link-security')
@@ -173,7 +173,7 @@
->assertButtonEnabled('@setup-button')
->assertSeeIn('@setup-button.btn-success', 'JOIN NOW')
// try without the nickname
- ->click('@setup-button')
+ ->clickWhenEnabled('@setup-button')
->waitFor('@setup-nickname-input.is-invalid')
->assertSeeIn(
'@setup-status-message',
@@ -183,7 +183,7 @@
->assertButtonEnabled('@setup-button')
->assertSeeIn('@setup-button.btn-success', 'JOIN NOW')
->type('@setup-nickname-input', 'Guest<p>')
- ->click('@setup-button')
+ ->clickWhenEnabled('@setup-button')
->assertMissing('@setup-nickname-input.is-invalid')
->waitForText("Waiting for permission to join the room.")
->assertButtonDisabled('@setup-button');
@@ -209,7 +209,7 @@
->waitFor('@setup-form')
->waitUntilMissing('@setup-status-message.loading')
->type('@setup-nickname-input', 'guest')
- ->click('@setup-button')
+ ->clickWhenEnabled('@setup-button')
->waitForText("Waiting for permission to join the room.")
->assertButtonDisabled('@setup-button');
diff --git a/src/tests/Browser/Meet/RoomSetupTest.php b/src/tests/Browser/Meet/RoomSetupTest.php
--- a/src/tests/Browser/Meet/RoomSetupTest.php
+++ b/src/tests/Browser/Meet/RoomSetupTest.php
@@ -151,7 +151,7 @@
// In another window join the room as the owner (authenticate)
$browser->on(new RoomPage('john'))
->assertSeeIn('@setup-button', "I'm the owner")
- ->click('@setup-button')
+ ->clickWhenEnabled('@setup-button')
->assertMissing('@toolbar')
->assertMissing('@menu')
->assertMissing('@session')
@@ -168,13 +168,13 @@
->type('@setup-nickname-input', 'john')
// Join the room (click the button twice, to make sure it does not
// produce redundant participants/subscribers in the room)
- ->click('@setup-button')
+ ->clickWhenEnabled('@setup-button')
->pause(10)
->click('@setup-button')
->waitFor('@session')
->assertMissing('@setup-form')
->whenAvailable('div.meet-video.self', function (Browser $browser) {
- $browser->assertVisible('video')
+ $browser->waitFor('video')
->assertSeeIn('.meet-nickname', 'john')
->assertVisible('.controls button.link-fullscreen')
->assertMissing('.controls button.link-audio')
@@ -197,11 +197,11 @@
// Join the room, disable cam/mic
->select('@setup-mic-select', '')
//->select('@setup-cam-select', '')
- ->click('@setup-button')
+ ->clickWhenEnabled('@setup-button')
->waitFor('@session')
->assertMissing('@setup-form')
->whenAvailable('div.meet-video.self', function (Browser $browser) {
- $browser->assertVisible('video')
+ $browser->waitFor('video')
->assertVisible('.meet-nickname')
->assertVisible('.controls button.link-fullscreen')
->assertMissing('.controls button.link-audio')
@@ -209,7 +209,7 @@
->assertMissing('.status .status-video');
})
->whenAvailable('div.meet-video:not(.self)', function (Browser $browser) {
- $browser->assertVisible('video')
+ $browser->waitFor('video')
->assertSeeIn('.meet-nickname', 'john')
->assertVisible('.controls button.link-fullscreen')
->assertVisible('.controls button.link-audio')
@@ -230,7 +230,7 @@
// Check guest's elements in the owner's window
$browser
->whenAvailable('div.meet-video:not(.self)', function (Browser $browser) {
- $browser->assertVisible('video')
+ $browser->waitFor('video')
->assertVisible('.meet-nickname')
->assertVisible('.controls button.link-fullscreen')
->assertVisible('.controls button.link-audio')
@@ -262,7 +262,7 @@
// Join the room, disable cam/mic
->select('@setup-mic-select', '')
//->select('@setup-cam-select', '')
- ->click('@setup-button')
+ ->clickWhenEnabled('@setup-button')
->waitFor('@session');
// Leave the room as the room owner
@@ -303,7 +303,7 @@
->type('@setup-nickname-input', 'john')
->select('@setup-mic-select', '')
->select('@setup-cam-select', '')
- ->click('@setup-button')
+ ->clickWhenEnabled('@setup-button')
->waitFor('@session')
->assertMissing('@setup-form')
->whenAvailable('@subscribers .meet-subscriber.self', function (Browser $browser) {
@@ -330,7 +330,7 @@
// Join the room, disable cam/mic
->select('@setup-mic-select', '')
->select('@setup-cam-select', '')
- ->click('@setup-button')
+ ->clickWhenEnabled('@setup-button')
->waitFor('@session')
->assertMissing('@setup-form')
->whenAvailable('@subscribers .meet-subscriber.self', function (Browser $browser) {

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 3, 8:52 AM (4 h, 32 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18823347
Default Alt Text
D2044.1775206348.diff (15 KB)

Event Timeline