kameleon 0.0.8 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: