From 191c5c293ac9b284a9def9986d7c296a28124d8f Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Sun, 1 Sep 2019 07:15:35 +0800 Subject: [PATCH 1/3] MDL-65493 message: JS fixes for random behat fails --- message/amd/build/message_drawer.min.js | 2 +- message/amd/src/message_drawer.js | 25 +++++++++++++++++++++---- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/message/amd/build/message_drawer.min.js b/message/amd/build/message_drawer.min.js index 1049c16704a..a1353b6911b 100644 --- a/message/amd/build/message_drawer.min.js +++ b/message/amd/build/message_drawer.min.js @@ -1 +1 @@ -define(["jquery","core/custom_interaction_events","core/pubsub","core_message/message_drawer_view_contact","core_message/message_drawer_view_contacts","core_message/message_drawer_view_conversation","core_message/message_drawer_view_group_info","core_message/message_drawer_view_overview","core_message/message_drawer_view_search","core_message/message_drawer_view_settings","core_message/message_drawer_router","core_message/message_drawer_routes","core_message/message_drawer_events"],function(a,b,c,d,e,f,g,h,i,j,k,l,m){var n={PANEL_BODY_CONTAINER:'[data-region="panel-body-container"]',PANEL_HEADER_CONTAINER:'[data-region="panel-header-container"]',VIEW_CONTACT:'[data-region="view-contact"]',VIEW_CONTACTS:'[data-region="view-contacts"]',VIEW_CONVERSATION:'[data-region="view-conversation"]',VIEW_GROUP_INFO:'[data-region="view-group-info"]',VIEW_OVERVIEW:'[data-region="view-overview"]',VIEW_SEARCH:'[data-region="view-search"]',VIEW_SETTINGS:'[data-region="view-settings"]',ROUTES:"[data-route]",ROUTES_BACK:"[data-route-back]",HEADER_CONTAINER:'[data-region="header-container"]',BODY_CONTAINER:'[data-region="body-container"]',FOOTER_CONTAINER:'[data-region="footer-container"]'},o=function(a,b,c){var d=b.find(n.HEADER_CONTAINER).find(c);d.length||(d=b.find(n.PANEL_HEADER_CONTAINER).find(c));var e=b.find(n.BODY_CONTAINER).find(c);e.length||(e=b.find(n.PANEL_BODY_CONTAINER).find(c));var f=b.find(n.FOOTER_CONTAINER).find(c);return[a,d.length?d:null,e.length?e:null,f.length?f:null]},p=[[l.VIEW_CONTACT,n.VIEW_CONTACT,d.show,d.description],[l.VIEW_CONTACTS,n.VIEW_CONTACTS,e.show,e.description],[l.VIEW_CONVERSATION,n.VIEW_CONVERSATION,f.show,f.description],[l.VIEW_GROUP_INFO,n.VIEW_GROUP_INFO,g.show,g.description],[l.VIEW_OVERVIEW,n.VIEW_OVERVIEW,h.show,h.description],[l.VIEW_SEARCH,n.VIEW_SEARCH,i.show,i.description],[l.VIEW_SETTINGS,n.VIEW_SETTINGS,j.show,j.description]],q=function(a,b){p.forEach(function(c){k.add(a,c[0],o(a,b,c[1]),c[2],c[3])})},r=function(a,b){b.attr("data-shown")||(k.go(a,l.VIEW_OVERVIEW),b.attr("data-shown",!0)),b.removeClass("hidden"),b.attr("aria-expanded",!0),b.attr("aria-hidden",!1)},s=function(a){a.addClass("hidden"),a.attr("aria-expanded",!1),a.attr("aria-hidden",!0)},t=function(a){return!a.hasClass("hidden")},u=function(d,e,f){b.define(e,[b.events.activate]);var g=/^data-route-param-?(\d*)$/;e.on(b.events.activate,n.ROUTES,function(b,c){for(var e=a(b.target).closest(n.ROUTES),f=e.attr("data-route"),h=[],i=0;i1?c[1]:0,f=d.length>1?d[1]:0;return e1?c[1]:0,f=d.length>1?d[1]:0;return e Date: Mon, 2 Sep 2019 09:05:29 +0800 Subject: [PATCH 2/3] MDL-65493 message: The execute wrapper MUST be used --- message/tests/behat/behat_message.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/message/tests/behat/behat_message.php b/message/tests/behat/behat_message.php index 973739bd161..cd8bc43f1c1 100644 --- a/message/tests/behat/behat_message.php +++ b/message/tests/behat/behat_message.php @@ -78,7 +78,7 @@ class behat_message extends behat_base { */ public function i_view_contact_in_messages($userfullname) { // Visit home page and follow messages. - $this->i_select_user_in_messaging($userfullname); + $this->execute('behat_message::i_select_user_in_messaging', [$userfullname]); $this->execute('behat_general::i_click_on_in_the', array( @@ -107,9 +107,9 @@ class behat_message extends behat_base { * @param string $userfullname */ public function i_select_user_in_messaging($userfullname) { - $this->i_open_messaging(); + $this->execute('behat_message::i_open_messaging', []); - $this->i_search_for_string_in_messaging($userfullname); + $this->execute('behat_message::i_search_for_string_in_messaging', [$userfullname]); // Need to limit the click to the search results because the 'view-contact-profile' elements // can occur in two separate divs on the page. @@ -154,7 +154,7 @@ class behat_message extends behat_base { * @param string $userfullname */ public function i_send_message_to_user($messagecontent, $userfullname) { - $this->i_select_user_in_messaging($userfullname); + $this->execute('behat_message::i_select_user_in_messaging', [$userfullname]); $this->execute('behat_forms::i_set_the_field_with_xpath_to', array("//textarea[@data-region='send-message-txt']", $this->escape($messagecontent)) From f6dd23d9a280e3ddc3d8721a1f0134e550d05ede Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Mon, 2 Sep 2019 09:51:45 +0800 Subject: [PATCH 3/3] MDL-65493 core: Add pendingJS around pubsub.publish --- lib/amd/build/pubsub.min.js | 2 +- lib/amd/src/pubsub.js | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/amd/build/pubsub.min.js b/lib/amd/build/pubsub.min.js index 871bb59c16d..baad22251cf 100644 --- a/lib/amd/build/pubsub.min.js +++ b/lib/amd/build/pubsub.min.js @@ -1 +1 @@ -define([],function(){var a={},b=function(b,c){a[b]=a[b]||[],a[b].push(c)},c=function(b,c){if(a[b])for(var d=0;d * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -define([], function() { +define(['core/pending'], function(Pending) { var events = {}; @@ -59,11 +59,13 @@ define([], function() { * @param {any} data The data to provide to the subscribed callbacks. */ var publish = function(eventName, data) { + var pendingPromise = new Pending("Publishing " + eventName); if (events[eventName]) { events[eventName].forEach(function(callback) { callback(data); }); } + pendingPromise.resolve(); }; return {