Amire80 has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/102943


Change subject: WIP: Tracking beginning and end of DOM changing for testability
......................................................................

WIP: Tracking beginning and end of DOM changing for testability

Adding a mw.updatingDom variable to track when does
JavaScript begin and end changing the DOM.
This is done to facilitate testing changing elements using
Watir::Wait.while { @browser.execute_script "return mw.updatingDom" }

Change-Id: I4db63906b240ce71503fd2bb1ac579b5c221ce9f
---
M resources/js/ext.translate.special.managetranslatorsandbox.js
M tests/browser/features/support/pages/manage_translator_sandbox_page.rb
2 files changed, 36 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Translate 
refs/changes/43/102943/1

diff --git a/resources/js/ext.translate.special.managetranslatorsandbox.js 
b/resources/js/ext.translate.special.managetranslatorsandbox.js
index a8ca2b3..8179fad 100644
--- a/resources/js/ext.translate.special.managetranslatorsandbox.js
+++ b/resources/js/ext.translate.special.managetranslatorsandbox.js
@@ -95,6 +95,8 @@
                                                .addClass( 'send-reminder link' 
)
                                                .text( mw.msg( 
'tsb-reminder-link-text' ) )
                                                .on( 'click', function ( e ) {
+                                                       mw.updatingDom = true;
+
                                                        e.preventDefault();
 
                                                        $reminderStatus
@@ -105,8 +107,12 @@
                                                                userid: 
request.userid
                                                        } ).done( function () {
                                                                
$reminderStatus.text( mw.msg( 'tsb-reminder-sent-new' ) );
+
+                                                               mw.updatingDom 
= false;
                                                        } ).fail( function () {
                                                                
$reminderStatus.text( mw.msg( 'tsb-reminder-failed' ) );
+
+                                                               mw.updatingDom 
= false;
                                                        } );
                                                } ),
                                        $reminderStatus
@@ -122,19 +128,31 @@
                                                .addClass( 'accept primary 
green button' )
                                                .text( mw.msg( 
'tsb-accept-button-label' ) )
                                                .on( 'click', function () {
+                                                       mw.updatingDom = true;
+
                                                        doApiAction( {
                                                                userid: 
request.userid,
                                                                'do': 'promote'
-                                                       } ).done( 
removeSelectedRequests );
+                                                       } ).done( function () {
+                                                               
removeSelectedRequests();
+
+                                                               mw.updatingDom 
= false;
+                                                       } );
                                                } ),
                                        $( '<button>' )
                                                .addClass( 'delete destructive 
button' )
                                                .text( mw.msg( 
'tsb-reject-button-label' ) )
                                                .on( 'click', function () {
+                                                       mw.updatingDom = true;
+
                                                        doApiAction( {
                                                                userid: 
request.userid,
                                                                'do': 'delete'
-                                                       } ).done( 
removeSelectedRequests );
+                                                       } ).done( function () {
+                                                               
removeSelectedRequests();
+
+                                                               mw.updatingDom 
= false;
+                                                       } );
                                                } )
                                ),
                        $( '<div>' )
@@ -169,6 +187,7 @@
 
                // @todo: move higher in the tree
                storage = new mw.translate.TranslationStashStorage();
+               mw.updatingDom = true;
                storage.getUserTranslations( request.username ).done( 
showTranslations );
        }
 
@@ -265,19 +284,31 @@
                                                .addClass( 'accept primary 
green button' )
                                                .text( mw.msg( 
'tsb-accept-all-button-label' ) )
                                                .on( 'click', function () {
+                                                       mw.updatingDom = true;
+
                                                        doApiAction( {
                                                                userid: 
selectedUserIDs,
                                                                'do': 'promote'
-                                                       } ).done( 
removeSelectedRequests );
+                                                       } ).done( function () {
+                                                               
removeSelectedRequests();
+
+                                                               mw.updatingDom 
= false;
+                                                       } );
                                                } ),
                                        $( '<button>' )
                                                .addClass( 'delete destructive 
button' )
                                                .text( mw.msg( 
'tsb-reject-all-button-label' ) )
                                                .on( 'click', function () {
+                                                       mw.updatingDom = true;
+
                                                        doApiAction( {
                                                                userid: 
selectedUserIDs,
                                                                'do': 'delete'
-                                                       } ).done( 
removeSelectedRequests );
+                                                       } ).done( function () {
+                                                               
removeSelectedRequests();
+
+                                                               mw.updatingDom 
= false;
+                                                       } );
                                                } )
                                )
                );
diff --git 
a/tests/browser/features/support/pages/manage_translator_sandbox_page.rb 
b/tests/browser/features/support/pages/manage_translator_sandbox_page.rb
index 68341a2..13bfd19 100644
--- a/tests/browser/features/support/pages/manage_translator_sandbox_page.rb
+++ b/tests/browser/features/support/pages/manage_translator_sandbox_page.rb
@@ -132,7 +132,7 @@
                # It takes a few moments until Accept and Reject buttons
                # finish performing the action, and this action always
                # removes the currently displayed users and changes the header
-               Watir::Wait.until { details_header.text !=  initial_header_text 
}
+               Watir::Wait.while { @browser.execute_script "return 
mw.updatingDom" }
        end
 
        def only_request_with_username_is_selected?(username)

-- 
To view, visit https://gerrit.wikimedia.org/r/102943
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4db63906b240ce71503fd2bb1ac579b5c221ce9f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Translate
Gerrit-Branch: master
Gerrit-Owner: Amire80 <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to