diff options
| -rw-r--r-- | src/scenario/dsl.js | 7 | ||||
| -rw-r--r-- | test/scenario/dslSpec.js | 18 |
2 files changed, 24 insertions, 1 deletions
diff --git a/src/scenario/dsl.js b/src/scenario/dsl.js index cef024ad..45156369 100644 --- a/src/scenario/dsl.js +++ b/src/scenario/dsl.js @@ -167,7 +167,12 @@ angular.scenario.dsl('binding', function() { var element = new elements.init(elements[i]); if (contains(element.attr('ng:bind'), name) || contains(element.attr('ng:bind-template'), name)) { - done(null, element.text()); + if (element.is('input, textarea')) { + done(null, element.val()); + } else { + console.log('element.html(): ', element.html()); + done(null, element.html()); + } return; } } diff --git a/test/scenario/dslSpec.js b/test/scenario/dslSpec.js index 0338e884..881d629c 100644 --- a/test/scenario/dslSpec.js +++ b/test/scenario/dslSpec.js @@ -376,6 +376,24 @@ describe("angular.scenario.dsl", function() { expect($root.futureResult).toEqual('some value'); }); + it('should return value for input elements', function() { + doc.append('<input type="text" class="ng-binding" ng:bind="foo.bar" value="some value"/>'); + $root.dsl.binding('foo.bar'); + expect($root.futureResult).toEqual('some value'); + }); + + it('should return value for textarea elements', function() { + doc.append('<textarea class="ng-binding" ng:bind="foo.bar">some value</textarea>'); + $root.dsl.binding('foo.bar'); + expect($root.futureResult).toEqual('some value'); + }); + + it('should return innerHTML for all the other elements', function() { + doc.append('<div class="ng-binding" ng:bind="foo.bar">some <b>value</b></div>'); + $root.dsl.binding('foo.bar'); + expect($root.futureResult).toEqual('some <b>value</b>'); + }); + it('should select binding in template by name', function() { doc.append('<pre class="ng-binding" ng:bind-template="foo {{bar}} baz">foo some baz</pre>'); $root.dsl.binding('bar'); |
