diff --git a/docs/demos/dev-uiselect/controller.js b/docs/demos/dev-uiselect/controller.js
index 6411b8c9..b4287581 100644
--- a/docs/demos/dev-uiselect/controller.js
+++ b/docs/demos/dev-uiselect/controller.js
@@ -1,8 +1,11 @@
app.controller('DevUiSelectCtrl', function($scope) {
$scope.user = {
state: 'Arizona',
- state2: 'Kansas'
+ state2: 'Kansas',
+ tag: []
};
$scope.states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey', 'New Mexico', 'New York', 'North Dakota', 'North Carolina', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming'];
+
+ $scope.tags = ['JavaScript', 'Angular', 'TypeScript'];
});
\ No newline at end of file
diff --git a/docs/demos/dev-uiselect/test.js b/docs/demos/dev-uiselect/test.js
index 2e732045..1cf25786 100644
--- a/docs/demos/dev-uiselect/test.js
+++ b/docs/demos/dev-uiselect/test.js
@@ -9,19 +9,19 @@ describe('uiselect', function() {
//edit button initially shown, form initially hidden
expect(element(s+'div#state:visible').count()).toBe(1);
- expect(element(s+'.buttons > button:visible').count()).toBe(1);
+ expect(element(s+'.buttons > button:visible').count()).toBe(2);
expect(element(s+'.buttons > span:visible').count()).toBe(0);
//show form
- element(s+'form > div > button').click();
+ element(s+'form[name=uiSelectForm] > div > button').click();
//second click to test that controls not duplicated!
- element(s+'form > div > button').click();
+ element(s+'form[name=uiSelectForm] > div > button').click();
//also click outside to check blur = ignore
element('body').click();
//form shown in disabled state (loading)
- expect(element(s+'div#name:visible').count()).toBe(0);
- expect(element(s+'.buttons > button:visible').count()).toBe(0);
+ expect(element(s+'div#state:visible').count()).toBe(0);
+ expect(element(s+'.buttons > button:visible').count()).toBe(1);
sleep(delay);
@@ -30,15 +30,15 @@ describe('uiselect', function() {
//form enabled when data loaded
expect(element(s+'div#state:visible').count()).toBe(0);
- expect(element(s+'.buttons > button:visible').count()).toBe(0);
- expect(element(s+'.buttons > span button:enabled').count()).toBe(2);
+ expect(element(s+'.buttons > button:visible').count()).toBe(1);
+ expect(element(s+'.buttons > span button:enabled').count()).toBe(4);
//click cancel
- element(s+'form > div > span button[type="button"]').click();
+ element(s+'form[name=uiSelectForm] > div > span button[type="button"]').click();
//form closed
expect(element(s+'div#state:visible').count()).toBe(1);
- expect(element(s+'.buttons > button:visible').count()).toBe(1);
+ expect(element(s+'.buttons > button:visible').count()).toBe(2);
expect(element(s+'.buttons > span:visible').count()).toBe(0);
});
@@ -46,7 +46,7 @@ describe('uiselect', function() {
var s = '[ng-controller="DevUiSelectCtrl"] ';
//show form
- element(s+'form > div > button').click();
+ element(s+'form[name=uiSelectForm] > div > button').click();
sleep(delay);
@@ -61,12 +61,12 @@ describe('uiselect', function() {
element(s+'#ui-select-choices-row-1-').click();
//click submit
- element(s+'span button[type="submit"]').click();
+ element(s+'span button[name="submitState"]').click();
//second click to check that it works correctly
- element(s+'span button[type="submit"]').click();
+ element(s+'span button[name="submitState"]').click();
//saving
- expect(element(s+'form > div:eq(0) .editable-error:visible').count()).toBe(0);
+ expect(element(s+'form[name=uiSelectForm] > div:eq(0) .editable-error:visible').count()).toBe(0);
sleep(delay);
@@ -75,8 +75,98 @@ describe('uiselect', function() {
expect(element(s+'div#state:visible').text()).toMatch('Illinois');
expect(element(s+'div#state2:visible').count()).toBe(1);
expect(element(s+'div#state2:visible').text()).toMatch('Arizona');
+ expect(element(s+'.buttons > button:visible').count()).toBe(2);
+ expect(element(s+'.buttons > span:visible').count()).toBe(0);
+ });
+
+
+ it('should show form by `edit` button click and close by `cancel` for tag select', function() {
+ var s = '[ng-controller="DevUiSelectCtrl"] ';
+
+ //edit button initially shown, form initially hidden
+ expect(element(s+'div#tag:visible').count()).toBe(1);
+ expect(element(s+'.buttons > button:visible').count()).toBe(2);
+ expect(element(s+'.buttons > span:visible').count()).toBe(0);
+
+ //show form
+ element(s+'form[name=uiTagsform] > div > button').click();
+ //second click to test that controls not duplicated!
+ element(s+'form[name=uiTagsform] > div > button').click();
+ //also click outside to check blur = ignore
+ element('body').click();
+
+ //form shown in disabled state (loading)
+ expect(element(s+'div#tag:visible').count()).toBe(0);
+ expect(element(s+'.buttons > button:visible').count()).toBe(1);
+
+ sleep(delay);
+
+ //also click outside to check blur = ignore
+ element('body').click();
+
+ //form enabled when data loaded
+ expect(element(s+'div#tag:visible').count()).toBe(0);
expect(element(s+'.buttons > button:visible').count()).toBe(1);
+ expect(element(s+'.buttons > span button:enabled').count()).toBe(4);
+
+ //click cancel
+ element(s+'form[name=uiTagsform] > div > span button[type="button"]').click();
+
+ //form closed
+ expect(element(s+'div#tag:visible').count()).toBe(1);
+ expect(element(s+'.buttons > button:visible').count()).toBe(2);
expect(element(s+'.buttons > span:visible').count()).toBe(0);
});
+ it('should show form and save new values for tag select', function() {
+ var s = '[ng-controller="DevUiSelectCtrl"] ';
+
+ //show form
+ element(s+'form[name=uiSelectForm] > div > button').click();
+ element(s+'form[name=uiTagsform] > div > button').click();
+
+ sleep(delay);
+
+ //select a value for the first dropdown
+ element(s+'div[name=state] > div > span').click();
+ input('$select.search').enter('Illinois');
+ element(s+'#ui-select-choices-row-0-').click();
+
+ //select a value for the second dropdown
+ element(s+'div[name=state2] > div > span').click();
+ input('$select.search').enter('Arizona');
+ element(s+'#ui-select-choices-row-1-').click();
+
+ //select a value for the tag dropdown
+ element(s+'div[name=tag] > div > span').click();
+ input('$select.search').enter('Angular');
+ element(s+'#ui-select-choices-row-2-').click();
+
+ //click submit for state form
+ element(s+'span button[name="submitState"]').click();
+ //second click to check that it works correctly
+ element(s+'span button[name="submitState"]').click();
+
+
+ //click submit for tag form
+ element(s+'span button[name="submitTag"]').click();
+ //second click to check that it works correctly
+ element(s+'span button[name="submitTag"]').click();
+
+ //saving
+ expect(element(s+'form[name=uiTagsform] > div:eq(0) .editable-error:visible').count()).toBe(0);
+ expect(element(s+'form[name=uiSelectForm] > div:eq(0) .editable-error:visible').count()).toBe(0);
+
+ sleep(delay);
+
+ //form closed, new values shown
+ expect(element(s+'div#state:visible').count()).toBe(1);
+ expect(element(s+'div#state:visible').text()).toMatch('Illinois');
+ expect(element(s+'div#state2:visible').count()).toBe(1);
+ expect(element(s+'div#state2:visible').text()).toMatch('Arizona');
+ expect(element(s+'div#tag:visible').count()).toBe(1);
+ expect(element(s+'div#tag:visible').text()).toMatch('Angular');
+ expect(element(s+'.buttons > button:visible').count()).toBe(2);
+ expect(element(s+'.buttons > span:visible').count()).toBe(0);
+ });
});
\ No newline at end of file
diff --git a/docs/demos/dev-uiselect/view.html b/docs/demos/dev-uiselect/view.html
index 070ba15d..c4d6e845 100644
--- a/docs/demos/dev-uiselect/view.html
+++ b/docs/demos/dev-uiselect/view.html
@@ -27,7 +27,7 @@
-
+
+