terminus 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. data/README.rdoc +25 -19
  2. data/bin/terminus +1 -1
  3. data/lib/capybara/driver/terminus.rb +28 -17
  4. data/lib/terminus.rb +29 -15
  5. data/lib/terminus/application.rb +5 -11
  6. data/lib/terminus/browser.rb +97 -44
  7. data/lib/terminus/client.rb +43 -0
  8. data/lib/terminus/client/browser.rb +30 -0
  9. data/lib/terminus/client/phantom.js +6 -0
  10. data/lib/terminus/client/phantomjs.rb +20 -0
  11. data/lib/terminus/connector.rb +9 -0
  12. data/lib/terminus/connector/server.rb +142 -0
  13. data/lib/terminus/connector/socket_handler.rb +72 -0
  14. data/lib/terminus/controller.rb +22 -5
  15. data/lib/terminus/host.rb +7 -2
  16. data/lib/terminus/node.rb +11 -5
  17. data/lib/terminus/proxy.rb +35 -1
  18. data/lib/terminus/proxy/driver_body.rb +26 -6
  19. data/lib/terminus/proxy/external.rb +9 -0
  20. data/lib/terminus/proxy/rewrite.rb +4 -2
  21. data/lib/terminus/public/compiled/terminus-min.js +3 -0
  22. data/lib/terminus/public/compiled/terminus.js +5270 -0
  23. data/lib/terminus/public/loader.js +1 -1
  24. data/lib/terminus/public/pathology.js +3174 -0
  25. data/lib/terminus/public/syn/browsers.js +2 -2
  26. data/lib/terminus/public/syn/drag/drag.js +3 -4
  27. data/lib/terminus/public/syn/key.js +130 -111
  28. data/lib/terminus/public/syn/mouse.js +2 -2
  29. data/lib/terminus/public/syn/synthetic.js +45 -34
  30. data/lib/terminus/public/terminus.js +183 -70
  31. data/lib/terminus/server.rb +6 -0
  32. data/lib/terminus/timeouts.rb +4 -2
  33. data/lib/terminus/views/bootstrap.erb +12 -27
  34. data/lib/terminus/views/index.erb +1 -1
  35. data/spec/reports/android.txt +875 -0
  36. data/spec/reports/chrome.txt +137 -8
  37. data/spec/reports/firefox.txt +137 -9
  38. data/spec/reports/opera.txt +142 -13
  39. data/spec/reports/phantomjs.txt +871 -0
  40. data/spec/reports/safari.txt +137 -8
  41. data/spec/spec_helper.rb +19 -17
  42. data/spec/terminus_driver_spec.rb +8 -6
  43. data/spec/terminus_session_spec.rb +4 -4
  44. metadata +209 -117
@@ -26,10 +26,6 @@ Capybara::Driver::Terminus
26
26
  should extract node checked state
27
27
  should extract node selected state
28
28
  should return document text on /html selector
29
- it should behave like driver with header support
30
- should make headers available through response_headers
31
- it should behave like driver with status code support
32
- should make the status code available through status_code
33
29
  it should behave like driver with javascript support
34
30
  #find
35
31
  should find dynamically changed nodes
@@ -45,6 +41,10 @@ Capybara::Driver::Terminus
45
41
  should not wait for ajax requests to finish
46
42
  with short synchronization timeout
47
43
  should raise an error
44
+ it should behave like driver with header support
45
+ should make headers available through response_headers
46
+ it should behave like driver with status code support
47
+ should make the status code available through status_code
48
48
  it should behave like driver with frame support
49
49
  #within_frame
50
50
  should find the div in frameOne
@@ -238,6 +238,7 @@ Capybara::Session
238
238
  should raise an error
239
239
  it should behave like click_link
240
240
  #click_link
241
+ should follow relative links
241
242
  should follow redirects
242
243
  should follow redirects
243
244
  should add query string to current URL with naked query string
@@ -311,6 +312,7 @@ Capybara::Session
311
312
  the returned node
312
313
  should act like a session object
313
314
  should scope CSS selectors
315
+ should have a reference to its parent if there is one
314
316
  with css selectors
315
317
  should find the first element using the given locator
316
318
  with id selectors
@@ -659,11 +661,14 @@ Capybara::Session
659
661
  #within
660
662
  with CSS selector
661
663
  should click links in the given scope
664
+ should assert content in the given scope
662
665
  should accept additional options
663
666
  with XPath selector
664
667
  should click links in the given scope
665
668
  with the default selector
666
669
  should use XPath
670
+ with Node rather than selector
671
+ should click links in the given scope
667
672
  with the default selector set to CSS
668
673
  should use CSS
669
674
  with click_link
@@ -695,16 +700,23 @@ Capybara::Session
695
700
  is affected by following an absolute link
696
701
  is unaffected by posting through a relative form
697
702
  is affected by posting through an absolute form
703
+ is affected by following a redirect
698
704
  it should behave like session with headers support
699
705
  #response_headers
700
706
  should return response headers
701
- it should behave like session with status code support
702
- #status_code
703
- should return response codes
704
707
  it should behave like session with javascript support
705
708
  all JS specs
706
709
  Node#drag_to
707
710
  should drag and drop an object
711
+ Node#reload
712
+ without automatic reload
713
+ should reload the current context of the node
714
+ should reload a parent node
715
+ should not automatically reload
716
+ with automatic reload
717
+ should reload the current context of the node automatically
718
+ should reload a parent node automatically
719
+ should reload a node automatically when using find
708
720
  #find
709
721
  should allow triggering of custom JS events
710
722
  #body
@@ -717,6 +729,8 @@ Capybara::Session
717
729
  should execute the given script and return nothing
718
730
  #find
719
731
  should wait for asynchronous load
732
+ with frozen time
733
+ raises an error suggesting that Capybara is stuck in time
720
734
  #wait_until
721
735
  should wait for block to return true
722
736
  should raise Capybara::TimeoutError if block doesn't return true within timeout
@@ -744,5 +758,120 @@ Capybara::Session
744
758
  should wait for content to appear
745
759
  #has_no_content?
746
760
  should wait for content to disappear
761
+ it should behave like session with status code support
762
+ #status_code
763
+ should return response codes
764
+
765
+ Failures:
766
+
767
+ 1) Capybara::Session with terminus driver it should behave like session it should behave like attach_file#attach_file with normal form should set a file path by id
768
+ Failure/Error: @session.attach_file "form_image", __FILE__
769
+ Capybara::NotSupportedByDriverError:
770
+ Capybara::NotSupportedByDriverError
771
+ Shared Example Group: "attach_file" called from ./vendor/capybara/lib/capybara/spec/session.rb:88
772
+ # ./lib/terminus/node.rb:52:in `set'
773
+ # ./vendor/capybara/lib/capybara/node/element.rb:75:in `block in set'
774
+ # ./vendor/capybara/lib/capybara/node/base.rb:46:in `wait_until'
775
+ # ./vendor/capybara/lib/capybara/node/element.rb:75:in `set'
776
+ # ./vendor/capybara/lib/capybara/node/actions.rb:158:in `attach_file'
777
+ # (eval):2:in `attach_file'
778
+ # ./vendor/capybara/lib/capybara/spec/session/attach_file_spec.rb:12:in `block (4 levels) in <top (required)>'
779
+
780
+ 2) Capybara::Session with terminus driver it should behave like session it should behave like attach_file#attach_file with normal form should set a file path by label
781
+ Failure/Error: @session.attach_file "Image", __FILE__
782
+ Capybara::NotSupportedByDriverError:
783
+ Capybara::NotSupportedByDriverError
784
+ Shared Example Group: "attach_file" called from ./vendor/capybara/lib/capybara/spec/session.rb:88
785
+ # ./lib/terminus/node.rb:52:in `set'
786
+ # ./vendor/capybara/lib/capybara/node/element.rb:75:in `block in set'
787
+ # ./vendor/capybara/lib/capybara/node/base.rb:46:in `wait_until'
788
+ # ./vendor/capybara/lib/capybara/node/element.rb:75:in `set'
789
+ # ./vendor/capybara/lib/capybara/node/actions.rb:158:in `attach_file'
790
+ # (eval):2:in `attach_file'
791
+ # ./vendor/capybara/lib/capybara/spec/session/attach_file_spec.rb:18:in `block (4 levels) in <top (required)>'
792
+
793
+ 3) Capybara::Session with terminus driver it should behave like session it should behave like attach_file#attach_file with multipart form should set a file path by id
794
+ Failure/Error: @session.attach_file "form_document", @test_file_path
795
+ Capybara::NotSupportedByDriverError:
796
+ Capybara::NotSupportedByDriverError
797
+ Shared Example Group: "attach_file" called from ./vendor/capybara/lib/capybara/spec/session.rb:88
798
+ # ./lib/terminus/node.rb:52:in `set'
799
+ # ./vendor/capybara/lib/capybara/node/element.rb:75:in `block in set'
800
+ # ./vendor/capybara/lib/capybara/node/base.rb:46:in `wait_until'
801
+ # ./vendor/capybara/lib/capybara/node/element.rb:75:in `set'
802
+ # ./vendor/capybara/lib/capybara/node/actions.rb:158:in `attach_file'
803
+ # (eval):2:in `attach_file'
804
+ # ./vendor/capybara/lib/capybara/spec/session/attach_file_spec.rb:26:in `block (4 levels) in <top (required)>'
805
+
806
+ 4) Capybara::Session with terminus driver it should behave like session it should behave like attach_file#attach_file with multipart form should set a file path by label
807
+ Failure/Error: @session.attach_file "Document", @test_file_path
808
+ Capybara::NotSupportedByDriverError:
809
+ Capybara::NotSupportedByDriverError
810
+ Shared Example Group: "attach_file" called from ./vendor/capybara/lib/capybara/spec/session.rb:88
811
+ # ./lib/terminus/node.rb:52:in `set'
812
+ # ./vendor/capybara/lib/capybara/node/element.rb:75:in `block in set'
813
+ # ./vendor/capybara/lib/capybara/node/base.rb:46:in `wait_until'
814
+ # ./vendor/capybara/lib/capybara/node/element.rb:75:in `set'
815
+ # ./vendor/capybara/lib/capybara/node/actions.rb:158:in `attach_file'
816
+ # (eval):2:in `attach_file'
817
+ # ./vendor/capybara/lib/capybara/spec/session/attach_file_spec.rb:32:in `block (4 levels) in <top (required)>'
818
+
819
+ 5) Capybara::Session with terminus driver it should behave like session it should behave like attach_file#attach_file with multipart form should send content type text/plain when uploading a text file
820
+ Failure/Error: @session.attach_file "Document", @test_file_path
821
+ Capybara::NotSupportedByDriverError:
822
+ Capybara::NotSupportedByDriverError
823
+ Shared Example Group: "attach_file" called from ./vendor/capybara/lib/capybara/spec/session.rb:88
824
+ # ./lib/terminus/node.rb:52:in `set'
825
+ # ./vendor/capybara/lib/capybara/node/element.rb:75:in `block in set'
826
+ # ./vendor/capybara/lib/capybara/node/base.rb:46:in `wait_until'
827
+ # ./vendor/capybara/lib/capybara/node/element.rb:75:in `set'
828
+ # ./vendor/capybara/lib/capybara/node/actions.rb:158:in `attach_file'
829
+ # (eval):2:in `attach_file'
830
+ # ./vendor/capybara/lib/capybara/spec/session/attach_file_spec.rb:43:in `block (4 levels) in <top (required)>'
831
+
832
+ 6) Capybara::Session with terminus driver it should behave like session it should behave like attach_file#attach_file with multipart form should send content type image/jpeg when uploading an image
833
+ Failure/Error: @session.attach_file "Document", @test_jpg_file_path
834
+ Capybara::NotSupportedByDriverError:
835
+ Capybara::NotSupportedByDriverError
836
+ Shared Example Group: "attach_file" called from ./vendor/capybara/lib/capybara/spec/session.rb:88
837
+ # ./lib/terminus/node.rb:52:in `set'
838
+ # ./vendor/capybara/lib/capybara/node/element.rb:75:in `block in set'
839
+ # ./vendor/capybara/lib/capybara/node/base.rb:46:in `wait_until'
840
+ # ./vendor/capybara/lib/capybara/node/element.rb:75:in `set'
841
+ # ./vendor/capybara/lib/capybara/node/actions.rb:158:in `attach_file'
842
+ # (eval):2:in `attach_file'
843
+ # ./vendor/capybara/lib/capybara/spec/session/attach_file_spec.rb:49:in `block (4 levels) in <top (required)>'
844
+
845
+ 7) Capybara::Session with terminus driver it should behave like session it should behave like attach_file#attach_file with multipart form should not break when using HTML5 multiple file input
846
+ Failure/Error: @session.attach_file "Multiple Documents", @test_file_path
847
+ Capybara::NotSupportedByDriverError:
848
+ Capybara::NotSupportedByDriverError
849
+ Shared Example Group: "attach_file" called from ./vendor/capybara/lib/capybara/spec/session.rb:88
850
+ # ./lib/terminus/node.rb:52:in `set'
851
+ # ./vendor/capybara/lib/capybara/node/element.rb:75:in `block in set'
852
+ # ./vendor/capybara/lib/capybara/node/base.rb:46:in `wait_until'
853
+ # ./vendor/capybara/lib/capybara/node/element.rb:75:in `set'
854
+ # ./vendor/capybara/lib/capybara/node/actions.rb:158:in `attach_file'
855
+ # (eval):2:in `attach_file'
856
+ # ./vendor/capybara/lib/capybara/spec/session/attach_file_spec.rb:55:in `block (4 levels) in <top (required)>'
857
+
858
+ 8) Capybara::Session with terminus driver it should behave like session it should behave like fill_in#fill_in should fill in a text field by label without for
859
+ Failure/Error: extract_results(@session)['street'].should == 'Avenue Q'
860
+ expected: "Avenue Q"
861
+ got: "Sesame street 66" (using ==)
862
+ Shared Example Group: "fill_in" called from ./vendor/capybara/lib/capybara/spec/session.rb:94
863
+ # ./vendor/capybara/lib/capybara/spec/session/fill_in_spec.rb:22:in `block (3 levels) in <top (required)>'
864
+
865
+ Finished in 3 minutes 26.48 seconds
866
+ 510 examples, 8 failures
867
+
868
+ Failed examples:
747
869
 
748
- 498 examples, 8 failures
870
+ rspec ./vendor/capybara/lib/capybara/spec/session/attach_file_spec.rb:11 # Capybara::Session with terminus driver it should behave like session it should behave like attach_file#attach_file with normal form should set a file path by id
871
+ rspec ./vendor/capybara/lib/capybara/spec/session/attach_file_spec.rb:17 # Capybara::Session with terminus driver it should behave like session it should behave like attach_file#attach_file with normal form should set a file path by label
872
+ rspec ./vendor/capybara/lib/capybara/spec/session/attach_file_spec.rb:25 # Capybara::Session with terminus driver it should behave like session it should behave like attach_file#attach_file with multipart form should set a file path by id
873
+ rspec ./vendor/capybara/lib/capybara/spec/session/attach_file_spec.rb:31 # Capybara::Session with terminus driver it should behave like session it should behave like attach_file#attach_file with multipart form should set a file path by label
874
+ rspec ./vendor/capybara/lib/capybara/spec/session/attach_file_spec.rb:42 # Capybara::Session with terminus driver it should behave like session it should behave like attach_file#attach_file with multipart form should send content type text/plain when uploading a text file
875
+ rspec ./vendor/capybara/lib/capybara/spec/session/attach_file_spec.rb:48 # Capybara::Session with terminus driver it should behave like session it should behave like attach_file#attach_file with multipart form should send content type image/jpeg when uploading an image
876
+ rspec ./vendor/capybara/lib/capybara/spec/session/attach_file_spec.rb:54 # Capybara::Session with terminus driver it should behave like session it should behave like attach_file#attach_file with multipart form should not break when using HTML5 multiple file input
877
+ rspec ./vendor/capybara/lib/capybara/spec/session/fill_in_spec.rb:19 # Capybara::Session with terminus driver it should behave like session it should behave like fill_in#fill_in should fill in a text field by label without for
@@ -1,26 +1,28 @@
1
1
  require 'rubygems'
2
2
  require 'bundler/setup'
3
3
 
4
- root = File.dirname(__FILE__) + '/../'
4
+ root = File.expand_path('../..', __FILE__)
5
5
 
6
- require root + 'vendor/capybara/spec/spec_helper'
7
- require root + 'lib/terminus'
6
+ require root + '/vendor/capybara/spec/spec_helper'
7
+ require root + '/lib/terminus'
8
+
9
+ Terminus.debug = ENV.has_key?('DEBUG')
10
+ Terminus.sockets = false if ENV.has_key?('NOSOCKET')
11
+
12
+ case ENV['USER_AGENT']
13
+ when 'auto' then Terminus.start_browser
14
+ when 'PhantomJS' then Terminus.start_phantomjs
15
+ end
8
16
 
9
17
  def select_browser
10
- if ua = ENV['USER_AGENT']
11
- Terminus.browser = {:name => ua}
12
- else
13
- Terminus.browser = :docked
14
- end
18
+ Terminus.browser = case ENV['USER_AGENT']
19
+ when 'iPhone' then {:os => /iPhone/}
20
+ when 'iPad' then {:os => /like Mac OS X/}
21
+ when 'auto' then Terminus.browser
22
+ when String then {:name => ENV['USER_AGENT']}
23
+ else :docked
24
+ end
15
25
  end
16
26
 
17
- # We use WEBrick to boot the test app, because if we use Thin (the default) the
18
- # slow response used to test Ajax resynchronization blocks the event loop. This
19
- # stops Terminus receiving messages and causes false positives: the client is
20
- # not really waiting for Ajax to complete, it's just having its messages blocked
21
- # because EventMachine is frozen.
27
+ at_exit { Terminus.browser.return_to_dock }
22
28
 
23
- Capybara.server do |app, port|
24
- handler = Rack::Handler.get('webrick')
25
- handler.run(app, :Port => port, :AccessLog => [], :Logger => WEBrick::Log::new(nil, 0))
26
- end
@@ -1,22 +1,24 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
1
+ require File.expand_path('../spec_helper', __FILE__)
2
2
 
3
3
  describe Capybara::Driver::Terminus do
4
4
  before do
5
5
  @driver = Capybara::Driver::Terminus.new(TestApp)
6
6
  select_browser
7
7
  end
8
-
8
+
9
9
  after do
10
- Terminus.browser.return_to_dock
10
+ Terminus.browser.return_to_dock unless ENV['USER_AGENT']
11
11
  end
12
+
13
+ single_window = %w[Android iPad iPhone PhantomJS].include?(ENV['USER_AGENT'])
12
14
 
13
15
  it_should_behave_like "driver"
14
- it_should_behave_like "driver with header support"
15
- it_should_behave_like "driver with status code support"
16
16
  it_should_behave_like "driver with javascript support"
17
17
  it_should_behave_like "driver with resynchronization support"
18
+ it_should_behave_like "driver with header support"
19
+ it_should_behave_like "driver with status code support"
18
20
  it_should_behave_like "driver with frame support"
19
- it_should_behave_like "driver with support for window switching"
21
+ it_should_behave_like "driver with support for window switching" unless single_window
20
22
  it_should_behave_like "driver with cookies support"
21
23
  it_should_behave_like "driver with infinite redirect detection"
22
24
  end
@@ -1,4 +1,4 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
1
+ require File.expand_path('../spec_helper', __FILE__)
2
2
 
3
3
  describe Capybara::Session do
4
4
  context 'with terminus driver' do
@@ -6,14 +6,14 @@ describe Capybara::Session do
6
6
  @session = Capybara::Session.new(:terminus, TestApp)
7
7
  select_browser
8
8
  end
9
-
9
+
10
10
  after do
11
- Terminus.browser.return_to_dock
11
+ Terminus.browser.return_to_dock unless ENV['USER_AGENT']
12
12
  end
13
13
 
14
14
  it_should_behave_like "session"
15
15
  it_should_behave_like "session with headers support"
16
- it_should_behave_like "session with status code support"
17
16
  it_should_behave_like "session with javascript support"
17
+ it_should_behave_like "session with status code support"
18
18
  end
19
19
  end
metadata CHANGED
@@ -1,151 +1,238 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: terminus
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
4
5
  prerelease:
5
- version: 0.3.0
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - James Coglan
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-07-20 00:00:00 +01:00
14
- default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: rack
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
12
+ date: 2012-10-08 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: capybara
16
+ requirement: !ruby/object:Gem::Requirement
20
17
  none: false
21
- requirements:
22
- - - ">="
23
- - !ruby/object:Gem::Version
24
- version: "1.0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 0.4.0
25
22
  type: :runtime
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
28
- name: thin
29
23
  prerelease: false
30
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
31
25
  none: false
32
- requirements:
33
- - - ">="
34
- - !ruby/object:Gem::Version
35
- version: "1.2"
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 0.4.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: childprocess
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: 0.3.0
36
38
  type: :runtime
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
39
- name: eventmachine
40
39
  prerelease: false
41
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 0.3.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: cookiejar
48
+ requirement: !ruby/object:Gem::Requirement
42
49
  none: false
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: "0.12"
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: 0.3.0
47
54
  type: :runtime
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
50
- name: faye
51
55
  prerelease: false
52
- requirement: &id004 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 0.3.0
62
+ - !ruby/object:Gem::Dependency
63
+ name: faye
64
+ requirement: !ruby/object:Gem::Requirement
53
65
  none: false
54
- requirements:
55
- - - ~>
56
- - !ruby/object:Gem::Version
57
- version: 0.6.3
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: 0.8.2
58
70
  type: :runtime
59
- version_requirements: *id004
60
- - !ruby/object:Gem::Dependency
61
- name: sinatra
62
71
  prerelease: false
63
- requirement: &id005 !ruby/object:Gem::Requirement
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 0.8.2
78
+ - !ruby/object:Gem::Dependency
79
+ name: oyster
80
+ requirement: !ruby/object:Gem::Requirement
64
81
  none: false
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: "1.0"
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: 0.9.0
69
86
  type: :runtime
70
- version_requirements: *id005
71
- - !ruby/object:Gem::Dependency
72
- name: packr
73
87
  prerelease: false
74
- requirement: &id006 !ruby/object:Gem::Requirement
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: 0.9.0
94
+ - !ruby/object:Gem::Dependency
95
+ name: packr
96
+ requirement: !ruby/object:Gem::Requirement
75
97
  none: false
76
- requirements:
77
- - - ">="
78
- - !ruby/object:Gem::Version
79
- version: "3.1"
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: 3.1.0
80
102
  type: :runtime
81
- version_requirements: *id006
82
- - !ruby/object:Gem::Dependency
83
- name: capybara
84
103
  prerelease: false
85
- requirement: &id007 !ruby/object:Gem::Requirement
104
+ version_requirements: !ruby/object:Gem::Requirement
86
105
  none: false
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- version: 0.4.0
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: 3.1.0
110
+ - !ruby/object:Gem::Dependency
111
+ name: rack
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: 1.0.0
91
118
  type: :runtime
92
- version_requirements: *id007
93
- - !ruby/object:Gem::Dependency
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: 1.0.0
126
+ - !ruby/object:Gem::Dependency
94
127
  name: rack-proxy
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: 0.3.0
134
+ type: :runtime
95
135
  prerelease: false
96
- requirement: &id008 !ruby/object:Gem::Requirement
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: 0.3.0
142
+ - !ruby/object:Gem::Dependency
143
+ name: sinatra
144
+ requirement: !ruby/object:Gem::Requirement
97
145
  none: false
98
- requirements:
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- version: "0.3"
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
149
+ version: 1.0.0
102
150
  type: :runtime
103
- version_requirements: *id008
104
- - !ruby/object:Gem::Dependency
105
- name: useragent
106
151
  prerelease: false
107
- requirement: &id009 !ruby/object:Gem::Requirement
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: 1.0.0
158
+ - !ruby/object:Gem::Dependency
159
+ name: thin
160
+ requirement: !ruby/object:Gem::Requirement
108
161
  none: false
109
- requirements:
110
- - - ">="
111
- - !ruby/object:Gem::Version
112
- version: "0.3"
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: 1.2.0
113
166
  type: :runtime
114
- version_requirements: *id009
115
- - !ruby/object:Gem::Dependency
116
- name: oyster
117
167
  prerelease: false
118
- requirement: &id010 !ruby/object:Gem::Requirement
168
+ version_requirements: !ruby/object:Gem::Requirement
119
169
  none: false
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: "0.9"
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: 1.2.0
174
+ - !ruby/object:Gem::Dependency
175
+ name: useragent
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: 0.3.0
124
182
  type: :runtime
125
- version_requirements: *id010
126
- - !ruby/object:Gem::Dependency
127
- name: rspec
128
183
  prerelease: false
129
- requirement: &id011 !ruby/object:Gem::Requirement
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: 0.3.0
190
+ - !ruby/object:Gem::Dependency
191
+ name: rake
192
+ requirement: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ! '>='
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ - !ruby/object:Gem::Dependency
207
+ name: rspec
208
+ requirement: !ruby/object:Gem::Requirement
130
209
  none: false
131
- requirements:
132
- - - ">="
133
- - !ruby/object:Gem::Version
134
- version: "0"
210
+ requirements:
211
+ - - ! '>='
212
+ - !ruby/object:Gem::Version
213
+ version: '0'
135
214
  type: :development
136
- version_requirements: *id011
215
+ prerelease: false
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ! '>='
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
137
222
  description:
138
223
  email: jcoglan@gmail.com
139
- executables:
224
+ executables:
140
225
  - terminus
141
226
  extensions: []
142
-
143
- extra_rdoc_files:
227
+ extra_rdoc_files:
144
228
  - README.rdoc
145
- files:
229
+ files:
146
230
  - README.rdoc
147
231
  - bin/terminus
148
232
  - lib/terminus.rb
233
+ - lib/terminus/connector/server.rb
234
+ - lib/terminus/connector/socket_handler.rb
235
+ - lib/terminus/client.rb
149
236
  - lib/terminus/node.rb
150
237
  - lib/terminus/proxy.rb
151
238
  - lib/terminus/timeouts.rb
@@ -161,13 +248,22 @@ files:
161
248
  - lib/terminus/public/loader.js
162
249
  - lib/terminus/public/terminus.js
163
250
  - lib/terminus/public/icon.png
251
+ - lib/terminus/public/pathology.js
164
252
  - lib/terminus/public/style.css
253
+ - lib/terminus/public/compiled/terminus.js
254
+ - lib/terminus/public/compiled/terminus-min.js
255
+ - lib/terminus/connector.rb
165
256
  - lib/terminus/controller.rb
166
257
  - lib/terminus/host.rb
258
+ - lib/terminus/client/browser.rb
259
+ - lib/terminus/client/phantom.js
260
+ - lib/terminus/client/phantomjs.rb
167
261
  - lib/capybara/driver/terminus.rb
168
262
  - spec/reports/firefox.txt
169
263
  - spec/reports/chrome.txt
170
264
  - spec/reports/opera.txt
265
+ - spec/reports/phantomjs.txt
266
+ - spec/reports/android.txt
171
267
  - spec/reports/safari.txt
172
268
  - spec/terminus_session_spec.rb
173
269
  - spec/terminus_driver_spec.rb
@@ -177,34 +273,30 @@ files:
177
273
  - lib/terminus/public/syn/browsers.js
178
274
  - lib/terminus/public/syn/key.js
179
275
  - lib/terminus/public/syn/drag/drag.js
180
- has_rdoc: true
181
276
  homepage: http://terminus.jcoglan.com
182
277
  licenses: []
183
-
184
278
  post_install_message:
185
- rdoc_options:
279
+ rdoc_options:
186
280
  - --main
187
281
  - README.rdoc
188
- require_paths:
282
+ require_paths:
189
283
  - lib
190
- required_ruby_version: !ruby/object:Gem::Requirement
284
+ required_ruby_version: !ruby/object:Gem::Requirement
191
285
  none: false
192
- requirements:
193
- - - ">="
194
- - !ruby/object:Gem::Version
195
- version: "0"
196
- required_rubygems_version: !ruby/object:Gem::Requirement
286
+ requirements:
287
+ - - ! '>='
288
+ - !ruby/object:Gem::Version
289
+ version: '0'
290
+ required_rubygems_version: !ruby/object:Gem::Requirement
197
291
  none: false
198
- requirements:
199
- - - ">="
200
- - !ruby/object:Gem::Version
201
- version: "0"
292
+ requirements:
293
+ - - ! '>='
294
+ - !ruby/object:Gem::Version
295
+ version: '0'
202
296
  requirements: []
203
-
204
297
  rubyforge_project:
205
- rubygems_version: 1.6.2
298
+ rubygems_version: 1.8.23
206
299
  signing_key:
207
300
  specification_version: 3
208
301
  summary: Capybara driver for cross-browser and remote scripting
209
302
  test_files: []
210
-