Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F117765643
D2044.1775230904.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
15 KB
Referenced Files
None
Subscribers
None
D2044.1775230904.diff
View Options
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>
@@ -340,6 +339,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
@@ -164,6 +164,14 @@
return $this;
}
+ /**
+ * 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
*/
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
Details
Attached
Mime Type
text/plain
Expires
Fri, Apr 3, 3:41 PM (7 h, 26 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18824532
Default Alt Text
D2044.1775230904.diff (15 KB)
Attached To
Mode
D2044: Join video conference by pressing return key
Attached
Detach File
Event Timeline