aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ngScenario/dsl.js7
-rw-r--r--test/ngScenario/dslSpec.js20
2 files changed, 22 insertions, 5 deletions
diff --git a/src/ngScenario/dsl.js b/src/ngScenario/dsl.js
index 67a56af9..becd13a5 100644
--- a/src/ngScenario/dsl.js
+++ b/src/ngScenario/dsl.js
@@ -295,7 +295,12 @@ angular.scenario.dsl('select', function() {
if (option.length) {
select.val(value);
} else {
- option = select.find('option:contains("' + value + '")');
+ option = select.find('option').filter(function(){
+ return _jQuery(this).text() === value;
+ });
+ if (!option.length) {
+ option = select.find('option:contains("' + value + '")');
+ }
if (option.length) {
select.val(option.val());
} else {
diff --git a/test/ngScenario/dslSpec.js b/test/ngScenario/dslSpec.js
index 642e2d37..f94ec583 100644
--- a/test/ngScenario/dslSpec.js
+++ b/test/ngScenario/dslSpec.js
@@ -227,6 +227,7 @@ describe("angular.scenario.dsl", function() {
$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">' +
@@ -238,14 +239,25 @@ describe("angular.scenario.dsl", function() {
expect(doc.find('[x-ng-model="test"]').val()).toEqual('A');
});
+ it('should select option by exact name', function() {
+ doc.append(
+ '<select ng-model="test">' +
+ ' <option value=A>twenty one</option>' +
+ ' <option value=B selected>two</option>' +
+ ' <option value=C>thirty one</option>' +
+ ' <option value=D>one</option>' +
+ '</select>'
+ );
+ $root.dsl.select('test').option('one');
+ expect(doc.find('[ng-model="test"]').val()).toEqual('D');
+ });
-
-
- it('should select option by name', function() {
+ it('should select option by name if no exact match and name contains value', function() {
doc.append(
'<select ng-model="test">' +
- ' <option value=A>one</option>' +
+ ' <option value=A>twenty one</option>' +
' <option value=B selected>two</option>' +
+ ' <option value=C>thirty one</option>' +
'</select>'
);
$root.dsl.select('test').option('one');