mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-05-25 06:13:44 +00:00
fix(scenario-runner): support data-ng and x-ng based attributes
Prefixed attributes like data-ng-model and x-ng-model were not being found by the Selector. It was only looking at ng: and ng- prefixed attributes. Added a few tests as well to ensure the aforementioned prefixed attributes are being matched properly. Closes #1020
This commit is contained in:
parent
fdf85bfd86
commit
249a1d84e7
3 changed files with 41 additions and 2 deletions
|
|
@ -119,7 +119,9 @@ angular.scenario.SpecRunner.prototype.addFutureAction = function(name, behavior,
|
||||||
});
|
});
|
||||||
var result = $document.find(selector);
|
var result = $document.find(selector);
|
||||||
if (selector.match(NG)) {
|
if (selector.match(NG)) {
|
||||||
result = result.add(selector.replace(NG, '[ng-'), $document);
|
angular.forEach(['[ng-','[data-ng-','[x-ng-'], function(value, index){
|
||||||
|
result = result.add(selector.replace(NG, value), $document);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if (!result.length) {
|
if (!result.length) {
|
||||||
throw {
|
throw {
|
||||||
|
|
|
||||||
|
|
@ -173,5 +173,4 @@ describe('angular.scenario.SpecRunner', function() {
|
||||||
'SpecEnd'
|
'SpecEnd'
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -217,6 +217,30 @@ describe("angular.scenario.dsl", function() {
|
||||||
expect(doc.find('[ng-model="test"]').val()).toEqual('A');
|
expect(doc.find('[ng-model="test"]').val()).toEqual('A');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should select single option using data-ng', function() {
|
||||||
|
doc.append(
|
||||||
|
'<select data-ng-model="test">' +
|
||||||
|
' <option value=A>one</option>' +
|
||||||
|
' <option value=B selected>two</option>' +
|
||||||
|
'</select>'
|
||||||
|
);
|
||||||
|
$root.dsl.select('test').option('A');
|
||||||
|
expect(doc.find('[data-ng-model="test"]').val()).toEqual('A');
|
||||||
|
});
|
||||||
|
it('should select single option using x-ng', function() {
|
||||||
|
doc.append(
|
||||||
|
'<select x-ng-model="test">' +
|
||||||
|
' <option value=A>one</option>' +
|
||||||
|
' <option value=B selected>two</option>' +
|
||||||
|
'</select>'
|
||||||
|
);
|
||||||
|
$root.dsl.select('test').option('A');
|
||||||
|
expect(doc.find('[x-ng-model="test"]').val()).toEqual('A');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
it('should select option by name', function() {
|
it('should select option by name', function() {
|
||||||
doc.append(
|
doc.append(
|
||||||
'<select ng-model="test">' +
|
'<select ng-model="test">' +
|
||||||
|
|
@ -574,6 +598,20 @@ describe("angular.scenario.dsl", function() {
|
||||||
chain.enter('foo');
|
chain.enter('foo');
|
||||||
expect(_jQuery('input[ng-model="test.input"]').val()).toEqual('foo');
|
expect(_jQuery('input[ng-model="test.input"]').val()).toEqual('foo');
|
||||||
});
|
});
|
||||||
|
it('should change value in text input in data-ng form', function() {
|
||||||
|
doc.append('<input data-ng-model="test.input" value="something">');
|
||||||
|
var chain = $root.dsl.input('test.input');
|
||||||
|
chain.enter('foo');
|
||||||
|
expect(_jQuery('input[data-ng-model="test.input"]').val()).toEqual('foo');
|
||||||
|
});
|
||||||
|
it('should change value in text input in x-ng form', function() {
|
||||||
|
doc.append('<input x-ng-model="test.input" value="something">');
|
||||||
|
var chain = $root.dsl.input('test.input');
|
||||||
|
chain.enter('foo');
|
||||||
|
expect(_jQuery('input[x-ng-model="test.input"]').val()).toEqual('foo');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
it('should return error if no input exists', function() {
|
it('should return error if no input exists', function() {
|
||||||
var chain = $root.dsl.input('test.input');
|
var chain = $root.dsl.input('test.input');
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue