|
| 1 | +require File.expand_path(File.dirname(__FILE__) + '/common') |
| 2 | + |
| 3 | +describe "editing external tools" do |
| 4 | + it_should_behave_like "in-process server selenium tests" |
| 5 | + |
| 6 | + it "should allow creating a new course external tool with custom fields" do |
| 7 | + course_with_teacher_logged_in |
| 8 | + get "/courses/#{@course.id}/settings" |
| 9 | + |
| 10 | + keep_trying_until { driver.find_element(:css, "#tab-tools-link").displayed? } |
| 11 | + driver.find_element(:css, "#tab-tools-link").click |
| 12 | + driver.find_element(:css, ".add_tool_link").click |
| 13 | + driver.find_element(:css, "#external_tools_dialog").should be_displayed |
| 14 | + driver.find_element(:css, "#external_tool_name").send_keys "Tool" |
| 15 | + driver.find_element(:css, "#external_tool_consumer_key").send_keys "Key" |
| 16 | + driver.find_element(:css, "#external_tool_shared_secret").send_keys "Secret" |
| 17 | + driver.find_element(:css, "#external_tool_domain").send_keys "example.com" |
| 18 | + driver.find_element(:css, "#external_tool_custom_fields_string").send_keys "a=1\nb=123" |
| 19 | + driver.find_element(:css, "#external_tools_dialog .save_button").click |
| 20 | + |
| 21 | + keep_trying_until { !driver.find_element(:css, "#external_tools_dialog").displayed? } |
| 22 | + |
| 23 | + tool = ContextExternalTool.last |
| 24 | + driver.find_element(:css, "#external_tool_#{tool.id}").should be_displayed |
| 25 | + tool.should_not be_nil |
| 26 | + tool.name.should == "Tool" |
| 27 | + tool.consumer_key.should == "Key" |
| 28 | + tool.shared_secret.should == "Secret" |
| 29 | + tool.domain.should == "example.com" |
| 30 | + tool.settings[:custom_fields].should == {'a' => '1', 'b' => '123'} |
| 31 | + end |
| 32 | + |
| 33 | + it "should allow editing an existing external tool with custom fields" do |
| 34 | + course_with_teacher_logged_in |
| 35 | + tool = @course.context_external_tools.create!(:name => "new tool", :consumer_key => "key", :shared_secret => "secret", :domain => 'example.com', :custom_fields => {'a' => '1', 'b' => '2'}) |
| 36 | + get "/courses/#{@course.id}/settings" |
| 37 | + |
| 38 | + keep_trying_until { driver.find_element(:css, "#tab-tools-link").displayed? } |
| 39 | + driver.find_element(:css, "#tab-tools-link").click |
| 40 | + tool_elem = driver.find_element(:css, "#external_tool_#{tool.id}") |
| 41 | + tool_elem.find_element(:css, ".edit_tool_link").click |
| 42 | + |
| 43 | + driver.find_element(:css, "#external_tools_dialog").should be_displayed |
| 44 | + |
| 45 | + driver.find_element(:css, "#external_tool_name").clear |
| 46 | + driver.find_element(:css, "#external_tool_consumer_key").clear |
| 47 | + driver.find_element(:css, "#external_tool_shared_secret").clear |
| 48 | + driver.find_element(:css, "#external_tool_domain").clear |
| 49 | + driver.find_element(:css, "#external_tool_custom_fields_string").clear |
| 50 | + |
| 51 | + driver.find_element(:css, "#external_tool_name").send_keys "new tool (updated)" |
| 52 | + driver.find_element(:css, "#external_tool_consumer_key").send_keys "key (updated)" |
| 53 | + driver.find_element(:css, "#external_tool_shared_secret").send_keys "secret (updated)" |
| 54 | + driver.find_element(:css, "#external_tool_domain").send_keys "example2.com" |
| 55 | + driver.find_element(:css, "#external_tool_custom_fields_string").send_keys "a=9\nb=8" |
| 56 | + driver.find_element(:css, "#external_tools_dialog .save_button").click |
| 57 | + |
| 58 | + keep_trying_until { !driver.find_element(:css, "#external_tools_dialog").displayed? } |
| 59 | + |
| 60 | + tool_elem = driver.find_elements(:css, "#external_tools .external_tool").detect(&:displayed?) |
| 61 | + tool_elem.should_not be_nil |
| 62 | + tool.reload |
| 63 | + tool.name.should == "new tool (updated)" |
| 64 | + tool.consumer_key.should == "key (updated)" |
| 65 | + tool.shared_secret.should == "secret (updated)" |
| 66 | + tool.domain.should == "example2.com" |
| 67 | + tool.settings[:custom_fields].should == {'a' => '9', 'b' => '8'} |
| 68 | + end |
| 69 | +end |
0 commit comments