9426: test Tags tab
authorradhika <radhika@curoverse.com>
Tue, 20 Jun 2017 23:00:32 +0000 (19:00 -0400)
committerradhika <radhika@curoverse.com>
Tue, 20 Jun 2017 23:00:32 +0000 (19:00 -0400)
Arvados-DCO-1.1-Signed-off-by: Radhika Chippada <radhika@curoverse.com>

apps/workbench/app/views/collections/_show_tag_rows.html.erb
apps/workbench/app/views/collections/_show_tags.html.erb
apps/workbench/test/integration/collections_test.rb

index da699256e9f818c44456ea9fc8e4303447dafd0d..653fb377050683e3ebc7091db1ae628af2f1c362 100644 (file)
@@ -7,10 +7,10 @@
             <td>
               <i class="glyphicon glyphicon-remove collection-tag-remove hide" style="cursor: pointer;"></i>
             </td>
-            <td class="collection-tag-field">
+            <td class="collection-tag-field collection-tag-field-key">
               <%= k %>
             </td>
-            <td class="collection-tag-field">
+            <td class="collection-tag-field collection-tag-field-value">
               <%= v %>
             </td>
           </tr>
@@ -21,6 +21,6 @@
           <td>
             <i class="glyphicon glyphicon-remove collection-tag-remove hide" style="cursor: pointer"></i>
           </td>
-          <td class="collection-tag-field"></td>
-          <td class="collection-tag-field"></td>
+          <td class="collection-tag-field collection-tag-field-key"></td>
+          <td class="collection-tag-field collection-tag-field-value"></td>
         </tr>
index 4ffe7ff5f9755effe734623817be1afa3a120470..a1f58ae7b0cb04b20101a4888798ab015ccbbd52 100644 (file)
@@ -5,7 +5,7 @@
   <div class="collection-tags-container" style="padding-left:2em;padding-right:2em;">
     <% if object.editable? %>
       <p title="Edit tags" id="edit-collection-tags">
-        <button type="button" class="btn btn-primary edit-collection-tags">Edit</button>
+        <a type="button" class="btn btn-primary edit-collection-tags">Edit</a>
       </p>
     <% end %>
 
@@ -31,7 +31,7 @@
     <div>
       <% if object.editable? %>
         <div class="pull-left">
-          <button class="btn btn-primary btn-sm collection-tag-add hide"><i class="glyphicon glyphicon-plus"></i> Add new tag </button>
+          <a class="btn btn-primary btn-sm collection-tag-add hide"><i class="glyphicon glyphicon-plus"></i> Add new tag </a>
         </div>
         <div class="pull-right">
           <%= link_to(save_tags_collection_path, {class: 'btn btn-sm btn-primary collection-tag-save hide', :remote => true, method: 'post', return_to: request.url}) do %>
index 8b43e5dbe32ba9d9c58d31a5ba2f2e24b0729fde..208379ca0c0032479f85f7a0697c7998899e6708 100644 (file)
@@ -420,4 +420,86 @@ class CollectionsTest < ActionDispatch::IntegrationTest
     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'
+
+    # 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'
+
+    # 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'
+
+    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'
+
+    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'
+    assert_selector 'a', text: 'Edit'
+    assert_no_text 'key 2'
+    assert_no_text 'value 2'
+  end
 end