kameleon 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. data/lib/kameleon.rb +16 -1
  2. data/lib/kameleon/dsl/act.rb +24 -12
  3. data/lib/kameleon/dsl/see.rb +15 -4
  4. data/lib/kameleon/session/capybara.rb +2 -25
  5. data/lib/kameleon/session/server.rb +21 -0
  6. data/lib/kameleon/session/session_pool.rb +45 -0
  7. data/lib/kameleon/user/abstract.rb +21 -24
  8. data/lib/kameleon/user/guest.rb +1 -3
  9. data/lib/kameleon/utils/configuration.rb +15 -0
  10. data/lib/kameleon/utils/helpers.rb +11 -0
  11. data/lib/patch/capybara_selenium_driver.rb +7 -0
  12. data/spec/sample_rack_app/hey.rb +13 -6
  13. data/spec/spec_helper.rb +26 -1
  14. data/spec/unit/act/click_spec.rb +1 -1
  15. data/spec/unit/act/fill_in/attach_file_spec.rb +14 -5
  16. data/spec/unit/act/fill_in/checkbox_spec.rb +1 -1
  17. data/spec/unit/act/fill_in/date_ranges_spec.rb +1 -1
  18. data/spec/unit/act/fill_in/multiple_select_spec.rb +1 -1
  19. data/spec/unit/act/fill_in/radio_button_spec.rb +1 -1
  20. data/spec/unit/act/fill_in/select_spec.rb +1 -1
  21. data/spec/unit/act/fill_in/text_area_spec.rb +1 -1
  22. data/spec/unit/act/fill_in/text_input_spec.rb +1 -1
  23. data/spec/unit/act/on_hover_spec.rb +1 -1
  24. data/spec/unit/dsl/not_see/form_elements/fields/empty_spec.rb +1 -1
  25. data/spec/unit/dsl/not_see/form_elements/fields/readonly_spec.rb +1 -1
  26. data/spec/unit/dsl/not_see/form_elements/fields_spec.rb +1 -1
  27. data/spec/unit/dsl/not_see/form_elements/textareas_spec.rb +1 -1
  28. data/spec/unit/dsl/not_see/form_elements/texts_spec.rb +1 -1
  29. data/spec/unit/dsl/not_see/in_scopes_spec.rb +3 -1
  30. data/spec/unit/dsl/not_see/special_elements/buttons_spec.rb +1 -1
  31. data/spec/unit/dsl/not_see/special_elements/error_message_for_spec.rb +1 -1
  32. data/spec/unit/dsl/not_see/special_elements/images_spec.rb +1 -1
  33. data/spec/unit/dsl/not_see/special_elements/links_spec.rb +1 -1
  34. data/spec/unit/dsl/not_see/special_elements/ordered_texts_spec.rb +3 -3
  35. data/spec/unit/dsl/not_see/special_selectors_spec.rb +9 -5
  36. data/spec/unit/dsl/not_see/texts_spec.rb +1 -1
  37. data/spec/unit/dsl/see/counted_elements_spec.rb +1 -1
  38. data/spec/unit/dsl/see/form_elements/checkboxes_spec.rb +1 -1
  39. data/spec/unit/dsl/see/form_elements/fields/disabled_spec.rb +1 -1
  40. data/spec/unit/dsl/see/form_elements/fields/empty_spec.rb +1 -1
  41. data/spec/unit/dsl/see/form_elements/fields/readonly_spec.rb +1 -1
  42. data/spec/unit/dsl/see/form_elements/fields_spec.rb +1 -1
  43. data/spec/unit/dsl/see/form_elements/multiple_selects_spec.rb +1 -1
  44. data/spec/unit/dsl/see/form_elements/radio_buttons_spec.rb +1 -1
  45. data/spec/unit/dsl/see/form_elements/selects_spec.rb +1 -1
  46. data/spec/unit/dsl/see/form_elements/textareas_spec.rb +1 -1
  47. data/spec/unit/dsl/see/form_elements/texts_spec.rb +1 -1
  48. data/spec/unit/dsl/see/in_scopes_spec.rb +4 -2
  49. data/spec/unit/dsl/see/special_elements/buttons_spec.rb +1 -1
  50. data/spec/unit/dsl/see/special_elements/error_message_for_spec.rb +1 -1
  51. data/spec/unit/dsl/see/special_elements/images_spec.rb +1 -1
  52. data/spec/unit/dsl/see/special_elements/links_spec.rb +1 -1
  53. data/spec/unit/dsl/see/special_elements/ordered_texts_spec.rb +3 -3
  54. data/spec/unit/dsl/see/special_selectors_spec.rb +10 -6
  55. data/spec/unit/dsl/see/texts_spec.rb +1 -1
  56. data/spec/unit/guest_spec.rb +8 -4
  57. data/spec/unit/user_base_spec.rb +6 -8
  58. metadata +29 -23
@@ -2,8 +2,8 @@ require 'spec_helper'
2
2
 
3
3
  describe '#see in scopes' do
4
4
  before do
5
- Capybara.app = Hey.new('scopes.html')
6
5
  @user = Kameleon::User::Guest.new(self)
6
+ @user.debug.visit('/scopes.html')
7
7
  end
8
8
 
9
9
  # TODO
@@ -55,7 +55,9 @@ describe '#see in scopes' do
55
55
  end
56
56
 
57
57
  it 'should see in many selctors scope' do
58
- @user.within(:xpath, '//div[@id="footer"]/span | //div[@id="main"]/div[@id="left"]', :select_multiple) do
58
+ user = Kameleon::User::Guest.new(self, :driver => :rack_test)
59
+ user.debug.visit('/scopes.html')
60
+ user.within(:xpath, '//div[@id="footer"]/span | //div[@id="main"]/div[@id="left"]', :select_multiple) do
59
61
  see 'Simple text', 'Left side'
60
62
  end
61
63
  end
@@ -2,8 +2,8 @@ require 'spec_helper'
2
2
 
3
3
  describe '#see special elements - buttons' do
4
4
  before do
5
- Capybara.app = Hey.new('special_elements.html')
6
5
  @user = Kameleon::User::Guest.new(self)
6
+ @user.debug.visit('/special_elements.html')
7
7
  end
8
8
 
9
9
  it 'should see by id' do
@@ -2,8 +2,8 @@ require 'spec_helper'
2
2
 
3
3
  describe '#see special elements - error message for' do
4
4
  before do
5
- Capybara.app = Hey.new('error_message_for.html')
6
5
  @user = Kameleon::User::Guest.new(self)
6
+ @user.debug.visit('/error_message_for.html')
7
7
  end
8
8
 
9
9
  it 'should see one messages' do
@@ -2,8 +2,8 @@ require 'spec_helper'
2
2
 
3
3
  describe '#see special elements - images' do
4
4
  before do
5
- Capybara.app = Hey.new('special_elements.html')
6
5
  @user = Kameleon::User::Guest.new(self)
6
+ @user.debug.visit('/special_elements.html')
7
7
  end
8
8
 
9
9
  it 'should see by alt' do
@@ -2,8 +2,8 @@ require 'spec_helper'
2
2
 
3
3
  describe '#see special elements - links' do
4
4
  before do
5
- Capybara.app = Hey.new('special_elements.html')
6
5
  @user = Kameleon::User::Guest.new(self)
6
+ @user.debug.visit('/special_elements.html')
7
7
  end
8
8
 
9
9
  context 'when src is provided' do
@@ -3,18 +3,18 @@ require 'spec_helper'
3
3
 
4
4
  describe '#see special elements - ordered texts' do
5
5
  before do
6
- Capybara.app = Hey.new('special_elements.html')
7
6
  @user = Kameleon::User::Guest.new(self)
7
+ @user.debug.visit('/special_elements.html')
8
8
  end
9
9
 
10
10
  it 'should see text in proper order' do
11
- @user.see :ordered => ['Michał Czyż', 'Tomasz Bąk', 'Rafał Bromirski']
11
+ @user.see :ordered => ['Michal Czyz', 'Tomasz Bak', 'Rafal Bromirski']
12
12
  end
13
13
 
14
14
  context 'when different order' do
15
15
  it 'should raise error' do
16
16
  expect do
17
- @user.see :ordered => ['Tomasz Bąk', 'Michał Czyż', 'Rafał Bromirski']
17
+ @user.see :ordered => ['Tomasz Bak', 'Michal Czyz', 'Rafal Bromirski']
18
18
  end.to raise_error(RSpec::Expectations::ExpectationNotMetError)
19
19
  end
20
20
  end
@@ -2,26 +2,30 @@
2
2
  require 'spec_helper'
3
3
 
4
4
  describe '#see special selectors in tables' do
5
- before do
6
- Capybara.app = Hey.new('special_elements.html')
7
- @user = Kameleon::User::Guest.new(self)
8
- end
9
5
 
10
6
  context 'when in row' do
7
+ before do
8
+ @user = Kameleon::User::Guest.new(self)
9
+ @user.debug.visit('/special_elements.html')
10
+ end
11
11
  it 'should see full text' do
12
- @user.within(:row => 'Michał Czyż') do
12
+ @user.within(:row => 'Michal Czyz') do
13
13
  see "13.00"
14
14
  end
15
15
  end
16
16
 
17
17
  it 'should see partial text' do
18
- @user.within(:row => 'Michał Czyż') do
18
+ @user.within(:row => 'Michal Czyz') do
19
19
  see "13"
20
20
  end
21
21
  end
22
22
  end
23
23
 
24
24
  context 'when in column' do
25
+ before do
26
+ @user = Kameleon::User::Guest.new(self, :driver => :rack_test)
27
+ @user.debug.visit('/special_elements.html')
28
+ end
25
29
  context 'when scoped by full text' do
26
30
  it 'should see full text' do
27
31
  @user.within(:column => 'Selleo') do
@@ -2,8 +2,8 @@ require 'spec_helper'
2
2
 
3
3
  describe '#see texts' do
4
4
  before do
5
- Capybara.app = Hey.new('texts.html')
6
5
  @user = Kameleon::User::Guest.new(self)
6
+ @user.debug.visit('/texts.html')
7
7
  end
8
8
 
9
9
  it 'should see single text' do
@@ -4,15 +4,17 @@ describe "Kameleon::User::Guest" do
4
4
  include ::Capybara::DSL
5
5
 
6
6
  before(:all) do
7
- Capybara.app = Hey.new
7
+ Capybara.current_driver = :rack_test
8
8
  @guest = Kameleon::User::Guest.new(self, {:session_name => :see_world})
9
9
  @another_guest = Kameleon::User::Guest.new(self)
10
10
  end
11
11
 
12
+ after(:all) { Capybara.use_default_driver }
13
+
12
14
  context "sessions" do
13
- it "by default user should get current session" do
14
- @another_guest.send(:session).should == Capybara.current_session
15
- @another_guest.debug.should == Capybara.current_session
15
+ it "by default user should get some session" do
16
+ @another_guest.send(:session).should be_kind_of(Capybara::Session)
17
+ @another_guest.debug.should be_kind_of(Capybara::Session)
16
18
  end
17
19
 
18
20
  it "guests should have separate session if param :session_name defined" do
@@ -29,9 +31,11 @@ describe "Kameleon::User::Guest" do
29
31
  before(:all) do
30
32
  @selenium = Kameleon::User::Guest.new(self, {:session_name => :new_world, :driver => :selenium, :skip_page_autoload => true})
31
33
  end
34
+
32
35
  it "should set Selenium if params :driver => :selenium" do
33
36
  @selenium.debug.driver.should be_a Capybara::Selenium::Driver
34
37
  end
38
+
35
39
  it "shouldn't change drivers for other users'" do
36
40
  [@guest, @another_guest].each do |user|
37
41
  user.debug.driver.should be_a Capybara::RackTest::Driver
@@ -1,15 +1,13 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe "Kameleon::User::Base" do
4
- include ::Capybara::DSL
4
+ pending do
5
+ include ::Capybara::DSL
5
6
 
6
- before(:all) do
7
- Capybara.app = Hey.new("Hello You :-)")
8
- end
9
-
10
- # initilization
7
+ # initilization
11
8
 
12
- #! overwriting using block for initialization
9
+ #! overwriting using block for initialization
13
10
 
14
- # login in
11
+ # login in
12
+ end
15
13
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kameleon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,11 +11,11 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-01-24 00:00:00.000000000 Z
14
+ date: 2012-02-11 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rspec
18
- requirement: &16357140 !ruby/object:Gem::Requirement
18
+ requirement: &21283260 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ! '>='
@@ -23,10 +23,10 @@ dependencies:
23
23
  version: '0'
24
24
  type: :runtime
25
25
  prerelease: false
26
- version_requirements: *16357140
26
+ version_requirements: *21283260
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: capybara
29
- requirement: &16374600 !ruby/object:Gem::Requirement
29
+ requirement: &21282240 !ruby/object:Gem::Requirement
30
30
  none: false
31
31
  requirements:
32
32
  - - ! '>='
@@ -34,10 +34,10 @@ dependencies:
34
34
  version: '0'
35
35
  type: :runtime
36
36
  prerelease: false
37
- version_requirements: *16374600
37
+ version_requirements: *21282240
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: selenium-webdriver
40
- requirement: &16372980 !ruby/object:Gem::Requirement
40
+ requirement: &21280800 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - ! '>='
@@ -45,10 +45,10 @@ dependencies:
45
45
  version: '0'
46
46
  type: :runtime
47
47
  prerelease: false
48
- version_requirements: *16372980
48
+ version_requirements: *21280800
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: rspec
51
- requirement: &16371840 !ruby/object:Gem::Requirement
51
+ requirement: &21279900 !ruby/object:Gem::Requirement
52
52
  none: false
53
53
  requirements:
54
54
  - - ! '>='
@@ -56,10 +56,10 @@ dependencies:
56
56
  version: '0'
57
57
  type: :development
58
58
  prerelease: false
59
- version_requirements: *16371840
59
+ version_requirements: *21279900
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: capybara
62
- requirement: &16370420 !ruby/object:Gem::Requirement
62
+ requirement: &21278940 !ruby/object:Gem::Requirement
63
63
  none: false
64
64
  requirements:
65
65
  - - ! '>='
@@ -67,10 +67,10 @@ dependencies:
67
67
  version: '0'
68
68
  type: :development
69
69
  prerelease: false
70
- version_requirements: *16370420
70
+ version_requirements: *21278940
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: guard-rspec
73
- requirement: &16369420 !ruby/object:Gem::Requirement
73
+ requirement: &21278400 !ruby/object:Gem::Requirement
74
74
  none: false
75
75
  requirements:
76
76
  - - ! '>='
@@ -78,7 +78,7 @@ dependencies:
78
78
  version: '0'
79
79
  type: :development
80
80
  prerelease: false
81
- version_requirements: *16369420
81
+ version_requirements: *21278400
82
82
  description: high abstraction dsl for end user perspective tests, kameleon - it's
83
83
  a polish word for chameleon
84
84
  email: michalczyz@gmail.com
@@ -86,53 +86,58 @@ executables: []
86
86
  extensions: []
87
87
  extra_rdoc_files: []
88
88
  files:
89
- - lib/kameleon/user/guest.rb
90
89
  - lib/kameleon/user/base.rb
91
90
  - lib/kameleon/user/abstract.rb
91
+ - lib/kameleon/user/guest.rb
92
92
  - lib/kameleon/session/capybara.rb
93
- - lib/kameleon/dsl/see.rb
93
+ - lib/kameleon/session/server.rb
94
+ - lib/kameleon/session/session_pool.rb
94
95
  - lib/kameleon/dsl/act.rb
96
+ - lib/kameleon/dsl/see.rb
97
+ - lib/kameleon/utils/configuration.rb
98
+ - lib/kameleon/utils/helpers.rb
95
99
  - lib/kameleon.rb
96
- - spec/unit/act/click_spec.rb
100
+ - lib/patch/capybara_selenium_driver.rb
97
101
  - spec/unit/act/fill_in/attach_file_spec.rb
98
102
  - spec/unit/act/fill_in/checkbox_spec.rb
99
103
  - spec/unit/act/fill_in/date_ranges_spec.rb
100
104
  - spec/unit/act/fill_in/multiple_select_spec.rb
101
105
  - spec/unit/act/fill_in/radio_button_spec.rb
102
- - spec/unit/act/fill_in/text_area_spec.rb
103
106
  - spec/unit/act/fill_in/select_spec.rb
107
+ - spec/unit/act/fill_in/text_area_spec.rb
104
108
  - spec/unit/act/fill_in/text_input_spec.rb
109
+ - spec/unit/act/click_spec.rb
105
110
  - spec/unit/act/on_hover_spec.rb
106
111
  - spec/unit/dsl/not_see/form_elements/fields/empty_spec.rb
107
112
  - spec/unit/dsl/not_see/form_elements/fields/readonly_spec.rb
108
113
  - spec/unit/dsl/not_see/form_elements/fields_spec.rb
109
114
  - spec/unit/dsl/not_see/form_elements/textareas_spec.rb
110
115
  - spec/unit/dsl/not_see/form_elements/texts_spec.rb
111
- - spec/unit/dsl/not_see/in_scopes_spec.rb
112
116
  - spec/unit/dsl/not_see/special_elements/buttons_spec.rb
113
117
  - spec/unit/dsl/not_see/special_elements/error_message_for_spec.rb
114
118
  - spec/unit/dsl/not_see/special_elements/images_spec.rb
115
119
  - spec/unit/dsl/not_see/special_elements/links_spec.rb
116
120
  - spec/unit/dsl/not_see/special_elements/ordered_texts_spec.rb
121
+ - spec/unit/dsl/not_see/in_scopes_spec.rb
117
122
  - spec/unit/dsl/not_see/special_selectors_spec.rb
118
123
  - spec/unit/dsl/not_see/texts_spec.rb
119
- - spec/unit/dsl/see/counted_elements_spec.rb
120
- - spec/unit/dsl/see/form_elements/checkboxes_spec.rb
121
124
  - spec/unit/dsl/see/form_elements/fields/disabled_spec.rb
122
125
  - spec/unit/dsl/see/form_elements/fields/empty_spec.rb
123
126
  - spec/unit/dsl/see/form_elements/fields/readonly_spec.rb
127
+ - spec/unit/dsl/see/form_elements/checkboxes_spec.rb
124
128
  - spec/unit/dsl/see/form_elements/fields_spec.rb
129
+ - spec/unit/dsl/see/form_elements/multiple_selects_spec.rb
125
130
  - spec/unit/dsl/see/form_elements/radio_buttons_spec.rb
126
131
  - spec/unit/dsl/see/form_elements/selects_spec.rb
127
132
  - spec/unit/dsl/see/form_elements/textareas_spec.rb
128
133
  - spec/unit/dsl/see/form_elements/texts_spec.rb
129
- - spec/unit/dsl/see/form_elements/multiple_selects_spec.rb
130
- - spec/unit/dsl/see/in_scopes_spec.rb
131
134
  - spec/unit/dsl/see/special_elements/buttons_spec.rb
132
135
  - spec/unit/dsl/see/special_elements/error_message_for_spec.rb
133
136
  - spec/unit/dsl/see/special_elements/images_spec.rb
134
137
  - spec/unit/dsl/see/special_elements/links_spec.rb
135
138
  - spec/unit/dsl/see/special_elements/ordered_texts_spec.rb
139
+ - spec/unit/dsl/see/counted_elements_spec.rb
140
+ - spec/unit/dsl/see/in_scopes_spec.rb
136
141
  - spec/unit/dsl/see/special_selectors_spec.rb
137
142
  - spec/unit/dsl/see/texts_spec.rb
138
143
  - spec/unit/guest_spec.rb
@@ -167,3 +172,4 @@ signing_key:
167
172
  specification_version: 3
168
173
  summary: high abstraction dsl for end user perspective tests
169
174
  test_files: []
175
+ has_rdoc: