Use selenium driver with headless for testing.
authorradhika chippada <radhika@curoverse.com>
Wed, 9 Apr 2014 17:56:34 +0000 (13:56 -0400)
committerradhika chippada <radhika@curoverse.com>
Wed, 9 Apr 2014 17:56:34 +0000 (13:56 -0400)
apps/workbench/Gemfile
apps/workbench/Gemfile.lock
apps/workbench/test/integration/users_test.rb

index 1e43d1c522190d7599f5fe4bf9c4c6a1caa193df..ee43a895c713c3d995164f35e93a1ed78af659f9 100644 (file)
@@ -28,7 +28,7 @@ group :test do
   gem 'selenium-webdriver'
   gem 'capybara'
   gem 'poltergeist'
-  gem 'capybara-webkit'
+  gem 'headless'
 end
 
 gem 'jquery-rails'
index 0795f752db7ee4d40a94f47d6addd27382fb75b2..e1e2b819542d94a0305c4813cd1f14cba143b707 100644 (file)
@@ -48,9 +48,6 @@ GEM
       rack (>= 1.0.0)
       rack-test (>= 0.5.4)
       xpath (~> 2.0)
-    capybara-webkit (1.1.0)
-      capybara (~> 2.0, >= 2.0.2)
-      json
     childprocess (0.5.1)
       ffi (~> 1.0, >= 1.0.11)
     cliver (0.3.2)
@@ -67,6 +64,7 @@ GEM
     erubis (2.7.0)
     execjs (2.0.2)
     ffi (1.9.3)
+    headless (1.0.1)
     highline (1.6.20)
     hike (1.2.3)
     httpclient (2.3.4.1)
@@ -185,9 +183,9 @@ DEPENDENCIES
   bootstrap-sass (~> 3.1.0)
   bootstrap-x-editable-rails
   capybara
-  capybara-webkit
   coffee-rails (~> 3.2.0)
   deep_merge
+  headless
   httpclient
   jquery-rails
   less
index 9ee12d80861d1609af75a51728e671570eac09b7..8dda43820594cc05057861de03f4a7d3e02c3b48 100644 (file)
@@ -1,6 +1,9 @@
 require 'integration_helper'
+require 'selenium-webdriver'
+require 'headless'
 
 class UsersTest < ActionDispatch::IntegrationTest
+
   test "login as active user but not admin" do
     Capybara.current_driver = Capybara.javascript_driver
     visit page_with_token('active_trustedclient')
@@ -38,7 +41,11 @@ class UsersTest < ActionDispatch::IntegrationTest
   end
 
   test "create a new user" do
-    Capybara.current_driver = :webkit
+    headless = Headless.new
+    headless.start
+
+    Capybara.current_driver = :selenium
+
     visit page_with_token('admin_trustedclient')
 
     click_link 'Users'
@@ -77,10 +84,15 @@ class UsersTest < ActionDispatch::IntegrationTest
     click_link 'Metadata'
     assert page.has_text? '(Repository: test_repo)'
     assert !(page.has_text? '(VirtualMachine:)')
+
+    headless.stop
   end
 
   test "setup the active user" do
-    Capybara.current_driver = :webkit
+    headless = Headless.new
+    headless.start
+
+    Capybara.current_driver = :selenium
     visit page_with_token('admin_trustedclient')
 
     click_link 'Users'
@@ -97,6 +109,7 @@ class UsersTest < ActionDispatch::IntegrationTest
     click_link 'Setup Active User'
 
     sleep(0.1)
+
     popup = page.driver.browser.window_handles.last
     page.within_window popup do
       assert has_text? 'Virtual Machine'
@@ -129,10 +142,15 @@ class UsersTest < ActionDispatch::IntegrationTest
     click_link 'Metadata'
     assert page.has_text? '(Repository: second_test_repo)'
     assert page.has_text? '(VirtualMachine: testvm.shell)'
+
+    headless.stop
   end
 
   test "unsetup active user" do
-    Capybara.current_driver = :webkit
+    headless = Headless.new
+    headless.start
+
+    Capybara.current_driver = :selenium
 
     visit page_with_token('admin_trustedclient')
 
@@ -160,6 +178,7 @@ class UsersTest < ActionDispatch::IntegrationTest
     sleep(0.1)
 
     # Should now be back in the Attributes tab for the user
+    page.driver.browser.switch_to.alert.accept
     assert page.has_text? 'modified_by_user_uuid'
     page.within(:xpath, '//a[@data-name="is_active"]') do
       assert_equal "false", text, "Expected user's is_active to be false after unsetup"
@@ -188,6 +207,8 @@ class UsersTest < ActionDispatch::IntegrationTest
     click_link 'Metadata'
     assert page.has_text? '(Repository: second_test_repo)'
     assert page.has_text? '(VirtualMachine: testvm.shell)'
+
+    headless.stop
   end
 
 end