assert_equal 2, file_ctrls.size
assert_equal false, file_ctrls[0]['class'].include?('disabled')
assert_equal false, file_ctrls[1]['class'].include?('disabled')
+
# previous checkbox selection won't result in firing a new event;
# undo and redo checkbox to fire the selection event again
find('input[type=checkbox]').click
first('.lock-collection-btn').click
accept_alert
end
+
+ test "collection tags tab" do
+ need_selenium
+
+ visit page_with_token('active', '/collections/zzzzz-4zz18-bv31uwvy3neko21')
+
+ click_link 'Tags'
+ wait_for_ajax
+
+ # verify initial state
+ assert_selector 'a', text: 'Edit'
+ assert_no_selector 'a', text: 'Add new tag'
+ assert_no_selector 'a', text: 'Save'
+ assert_no_selector 'a', text: 'Cancel'
+
+ # Verify controls in edit mode
+ first('.edit-collection-tags').click
+ assert_selector 'a.disabled', text: 'Edit'
+ assert_selector 'a', text: 'Add new tag'
+ assert_selector 'a', text: 'Save'
+ assert_selector 'a', text: 'Cancel'
+
+ # add two tags
+ first('.edit-collection-tags').click
+
+ first('.glyphicon-plus').click
+ first('.collection-tag-field-key').click
+ first('.collection-tag-field-key').set('key 1')
+ first('.collection-tag-field-value').click
+ first('.collection-tag-field-value').set('value 1')
+
+ first('.glyphicon-plus').click
+ editable_key_fields = page.all('.collection-tag-field-key')
+ editable_key_fields[1].click
+ editable_key_fields[1].set('key 2')
+ editable_val_fields = page.all('.collection-tag-field-value')
+ editable_val_fields[1].click
+ editable_val_fields[1].set('value 2')
+
+ click_on 'Save'
+ wait_for_ajax
+
+ # added tags; verify
+ assert_text 'key 1'
+ assert_text 'value 1'
+ assert_text 'key 2'
+ assert_text 'value 2'
+ assert_selector 'a', text: 'Edit'
+ assert_no_selector 'a', text: 'Save'
+
+ # remove first tag
+ first('.edit-collection-tags').click
+ assert_not_nil first('.glyphicon-remove')
+ first('.glyphicon-remove').click
+ click_on 'Save'
+ wait_for_ajax
+
+ assert_text 'key 2'
+ assert_text 'value 2'
+ assert_no_text 'key 1'
+ assert_no_text 'value 1'
+ assert_selector 'a', text: 'Edit'
+
+ # Click on cancel and verify
+ first('.edit-collection-tags').click
+ first('.collection-tag-field-key').click
+ first('.collection-tag-field-key').set('this key wont stick')
+ first('.collection-tag-field-value').click
+ first('.collection-tag-field-value').set('this value wont stick')
+
+ click_on 'Cancel'
+ wait_for_ajax
+
+ assert_text 'key 2'
+ assert_text 'value 2'
+ assert_no_text 'this key wont stick'
+ assert_no_text 'this value wont stick'
+
+ # remove all tags
+ first('.edit-collection-tags').click
+ first('.glyphicon-remove').click
+ click_on 'Save'
+ wait_for_ajax
+
+ assert_selector 'a', text: 'Edit'
+ assert_no_text 'key 2'
+ assert_no_text 'value 2'
+ end
end