aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElliott Sprehn2010-10-27 17:56:44 -0700
committerElliott Sprehn2010-10-27 17:56:44 -0700
commit92e31b556fcaeea7e7078c63729287dbdfcf09ff (patch)
tree86ba209b7abed2ca65ac7955e031ee447298fa90
parent62c0e5c46091d8b98a20c31ab26e715bad574bae (diff)
downloadangular.js-92e31b556fcaeea7e7078c63729287dbdfcf09ff.tar.bz2
Correctly fail tests if no binding matches and add better test cases for failure behavior.
-rw-r--r--src/scenario/dsl.js8
-rw-r--r--test/scenario/dslSpec.js14
2 files changed, 17 insertions, 5 deletions
diff --git a/src/scenario/dsl.js b/src/scenario/dsl.js
index 47ec68c8..bf0c990c 100644
--- a/src/scenario/dsl.js
+++ b/src/scenario/dsl.js
@@ -87,20 +87,20 @@ angular.scenario.dsl('using', function() {
*/
angular.scenario.dsl('binding', function() {
function contains(text, value) {
- return text && text.indexOf(value) >=0;
+ return text && text.indexOf(value) >= 0;
}
return function(name) {
return this.addFutureAction("select binding '" + name + "'", function($window, $document, done) {
var elements = $document.elements('.ng-binding');
for ( var i = 0; i < elements.length; i++) {
var element = new elements.init(elements[i]);
- if (contains(element.attr('ng:bind'), name) >= 0 ||
- contains(element.attr('ng:bind-template'), name) >= 0) {
+ if (contains(element.attr('ng:bind'), name) ||
+ contains(element.attr('ng:bind-template'), name)) {
done(null, element.text());
return;
}
}
- throw "Could not find binding: " + name;
+ done('Binding selector ' + name + ' did not match.');
});
};
});
diff --git a/test/scenario/dslSpec.js b/test/scenario/dslSpec.js
index 3d68925f..d21c1bb9 100644
--- a/test/scenario/dslSpec.js
+++ b/test/scenario/dslSpec.js
@@ -271,7 +271,19 @@ describe("angular.scenario.dsl", function() {
expect($root.futureResult).toEqual('foo some baz');
});
- it('should return error if no binding exists', function() {
+ it('should match bindings by substring match', function() {
+ doc.append('<pre class="ng-binding" ng:bind="foo.bar() && test.baz() | filter">binding value</pre>');
+ $root.dsl.binding('test.baz');
+ expect($root.futureResult).toEqual('binding value');
+ });
+
+ it('should return error if no bindings in document', function() {
+ $root.dsl.binding('foo.bar');
+ expect($root.futureError).toMatch(/did not match/);
+ });
+
+ it('should return error if no binding matches', function() {
+ doc.append('<span class="ng-binding" ng:bind="foo">some value</span>');
$root.dsl.binding('foo.bar');
expect($root.futureError).toMatch(/did not match/);
});