Skip to content
This repository was archived by the owner on Jul 29, 2024. It is now read-only.

Commit 0e9c2f4

Browse files
committed
refactor(clientsidescripts): use the testability api if available
Getting ready for version of Angular which will include the testability API.
1 parent d48c3db commit 0e9c2f4

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

lib/clientsidescripts.js

+22-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,12 @@ var functions = {};
2828
functions.waitForAngular = function(selector, callback) {
2929
var el = document.querySelector(selector);
3030
try {
31-
angular.element(el).injector().get('$browser').
32-
notifyWhenNoOutstandingRequests(callback);
31+
if (angular.getTestability) {
32+
angular.getTestability(el).whenStable(callback);
33+
} else {
34+
angular.element(el).injector().get('$browser').
35+
notifyWhenNoOutstandingRequests(callback);
36+
}
3337
} catch (e) {
3438
callback(e);
3539
}
@@ -46,6 +50,10 @@ functions.waitForAngular = function(selector, callback) {
4650
*/
4751
functions.findBindings = function(binding, exactMatch, using) {
4852
using = using || document;
53+
if (angular.getTestability) {
54+
return angular.getTestability(using).
55+
findBindings(using, binding, exactMatch);
56+
}
4957
var bindings = using.getElementsByClassName('ng-binding');
5058
var matches = [];
5159
for (var i = 0; i < bindings.length; ++i) {
@@ -338,6 +346,10 @@ functions.findRepeaterColumn = function(repeater, binding, using) {
338346
*/
339347
functions.findByModel = function(model, using) {
340348
using = using || document;
349+
if (angular.getTestability) {
350+
return angular.getTestability(using).
351+
findModels(using, model);
352+
}
341353
var prefixes = ['ng-', 'ng_', 'data-ng-', 'x-ng-', 'ng\\:'];
342354
for (var p = 0; p < prefixes.length; ++p) {
343355
var selector = '[' + prefixes[p] + 'model="' + model + '"]';
@@ -515,6 +527,10 @@ functions.allowAnimations = function(element, value) {
515527
*/
516528
functions.getLocationAbsUrl = function(selector) {
517529
var el = document.querySelector(selector);
530+
if (angular.getTestability) {
531+
return angular.getTestability(el).
532+
getLocation();
533+
}
518534
return angular.element(el).injector().get('$location').absUrl();
519535
};
520536

@@ -527,6 +543,10 @@ functions.getLocationAbsUrl = function(selector) {
527543
*/
528544
functions.setLocation = function(selector, url) {
529545
var el = document.querySelector(selector);
546+
if (angular.getTestability) {
547+
return angular.getTestability(el).
548+
setLocation(url);
549+
}
530550
var $injector = angular.element(el).injector();
531551
var $location = $injector.get('$location');
532552
var $rootScope = $injector.get('$rootScope');

0 commit comments

Comments
 (0)