kameleon 0.0.9 → 0.2.0.alpha.2

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 (81) hide show
  1. data/LICENCE +1 -1
  2. data/README.textile +157 -0
  3. data/lib/kameleon.rb +3 -18
  4. data/lib/kameleon/dsl.rb +98 -0
  5. data/lib/kameleon/dsl/act/form.rb +106 -0
  6. data/lib/kameleon/dsl/act/mouse.rb +59 -0
  7. data/lib/kameleon/dsl/context/scope.rb +95 -0
  8. data/lib/kameleon/dsl/utils/debug.rb +10 -0
  9. data/lib/kameleon/dsl/verify/absence.rb +151 -0
  10. data/lib/kameleon/dsl/verify/presence.rb +327 -0
  11. data/lib/kameleon/ext/active_record/shared_single_connection.rb +42 -0
  12. data/lib/kameleon/ext/capybara/server.rb +21 -0
  13. data/lib/kameleon/ext/capybara/session_pool.rb +63 -0
  14. data/lib/kameleon/ext/rspec/all.rb +4 -0
  15. data/lib/kameleon/ext/rspec/dsl.rb +39 -0
  16. data/lib/kameleon/ext/rspec/garbage_collector.rb +11 -0
  17. data/lib/kameleon/ext/rspec/headless.rb +12 -0
  18. data/lib/kameleon/ext/rspec/pool.rb +7 -0
  19. data/lib/kameleon/ext/rspec/transactional_examples.rb +10 -0
  20. data/{spec/support/deferred_garbage_collection.rb → lib/kameleon/ext/ruby/deferred_garbage_collector.rb} +0 -0
  21. data/lib/kameleon/ext/session/devise.rb +28 -0
  22. data/lib/kameleon/session.rb +23 -0
  23. data/lib/kameleon/utils/configuration.rb +5 -5
  24. data/lib/kameleon/utils/debug_console.rb +31 -0
  25. metadata +73 -77
  26. data/lib/kameleon/dsl/act.rb +0 -107
  27. data/lib/kameleon/dsl/see.rb +0 -155
  28. data/lib/kameleon/session/capybara.rb +0 -33
  29. data/lib/kameleon/session/server.rb +0 -21
  30. data/lib/kameleon/session/session_pool.rb +0 -45
  31. data/lib/kameleon/user/abstract.rb +0 -142
  32. data/lib/kameleon/user/base.rb +0 -36
  33. data/lib/kameleon/user/guest.rb +0 -10
  34. data/lib/kameleon/utils/helpers.rb +0 -11
  35. data/lib/patch/capybara_selenium_driver.rb +0 -7
  36. data/spec/sample_rack_app/hey.rb +0 -24
  37. data/spec/spec_helper.rb +0 -41
  38. data/spec/unit/act/click_spec.rb +0 -52
  39. data/spec/unit/act/fill_in/attach_file_spec.rb +0 -36
  40. data/spec/unit/act/fill_in/checkbox_spec.rb +0 -87
  41. data/spec/unit/act/fill_in/date_ranges_spec.rb +0 -24
  42. data/spec/unit/act/fill_in/multiple_select_spec.rb +0 -42
  43. data/spec/unit/act/fill_in/radio_button_spec.rb +0 -35
  44. data/spec/unit/act/fill_in/select_spec.rb +0 -35
  45. data/spec/unit/act/fill_in/text_area_spec.rb +0 -52
  46. data/spec/unit/act/fill_in/text_input_spec.rb +0 -52
  47. data/spec/unit/act/on_hover_spec.rb +0 -34
  48. data/spec/unit/dsl/not_see/form_elements/fields/empty_spec.rb +0 -38
  49. data/spec/unit/dsl/not_see/form_elements/fields/readonly_spec.rb +0 -38
  50. data/spec/unit/dsl/not_see/form_elements/fields_spec.rb +0 -24
  51. data/spec/unit/dsl/not_see/form_elements/textareas_spec.rb +0 -25
  52. data/spec/unit/dsl/not_see/form_elements/texts_spec.rb +0 -26
  53. data/spec/unit/dsl/not_see/in_scopes_spec.rb +0 -63
  54. data/spec/unit/dsl/not_see/special_elements/buttons_spec.rb +0 -24
  55. data/spec/unit/dsl/not_see/special_elements/error_message_for_spec.rb +0 -24
  56. data/spec/unit/dsl/not_see/special_elements/images_spec.rb +0 -24
  57. data/spec/unit/dsl/not_see/special_elements/links_spec.rb +0 -46
  58. data/spec/unit/dsl/not_see/special_elements/ordered_texts_spec.rb +0 -21
  59. data/spec/unit/dsl/not_see/special_selectors_spec.rb +0 -39
  60. data/spec/unit/dsl/not_see/texts_spec.rb +0 -24
  61. data/spec/unit/dsl/see/counted_elements_spec.rb +0 -26
  62. data/spec/unit/dsl/see/form_elements/checkboxes_spec.rb +0 -45
  63. data/spec/unit/dsl/see/form_elements/fields/disabled_spec.rb +0 -30
  64. data/spec/unit/dsl/see/form_elements/fields/empty_spec.rb +0 -28
  65. data/spec/unit/dsl/see/form_elements/fields/readonly_spec.rb +0 -38
  66. data/spec/unit/dsl/see/form_elements/fields_spec.rb +0 -28
  67. data/spec/unit/dsl/see/form_elements/multiple_selects_spec.rb +0 -47
  68. data/spec/unit/dsl/see/form_elements/radio_buttons_spec.rb +0 -35
  69. data/spec/unit/dsl/see/form_elements/selects_spec.rb +0 -40
  70. data/spec/unit/dsl/see/form_elements/textareas_spec.rb +0 -29
  71. data/spec/unit/dsl/see/form_elements/texts_spec.rb +0 -29
  72. data/spec/unit/dsl/see/in_scopes_spec.rb +0 -85
  73. data/spec/unit/dsl/see/special_elements/buttons_spec.rb +0 -28
  74. data/spec/unit/dsl/see/special_elements/error_message_for_spec.rb +0 -24
  75. data/spec/unit/dsl/see/special_elements/images_spec.rb +0 -28
  76. data/spec/unit/dsl/see/special_elements/links_spec.rb +0 -55
  77. data/spec/unit/dsl/see/special_elements/ordered_texts_spec.rb +0 -21
  78. data/spec/unit/dsl/see/special_selectors_spec.rb +0 -57
  79. data/spec/unit/dsl/see/texts_spec.rb +0 -24
  80. data/spec/unit/guest_spec.rb +0 -46
  81. data/spec/unit/user_base_spec.rb +0 -13
@@ -1,21 +0,0 @@
1
- #encoding: utf-8
2
- require 'spec_helper'
3
-
4
- describe '#not_see special elements - ordered texts' do
5
- before do
6
- @user = Kameleon::User::Guest.new(self)
7
- @user.debug.visit('/special_elements.html')
8
- end
9
-
10
- it 'should not see text in proper order' do
11
- @user.not_see :ordered => ['Tomasz Bak', 'Michal Czyz', 'Rafal Bromirski']
12
- end
13
-
14
- context 'when texts is in proper order' do
15
- it 'should raise error' do
16
- expect do
17
- @user.not_see :ordered => ['Michal Czyz', 'Tomasz Bak', 'Rafal Bromirski']
18
- end.to raise_error(RSpec::Expectations::ExpectationNotMetError)
19
- end
20
- end
21
- end
@@ -1,39 +0,0 @@
1
- #encoding: utf-8
2
- require 'spec_helper'
3
-
4
- describe '#not_see special selectors in tables' do
5
-
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
- it 'should not see text' do
12
- @user.within(:row => 'Michal Czyz') do
13
- not_see "17"
14
- end
15
- end
16
- end
17
-
18
- context 'when in column' do
19
- before do
20
- @user = Kameleon::User::Guest.new(self, {:driver => :rack_test})
21
- @user.debug.visit('/special_elements.html')
22
- end
23
- context 'when scoped by full text' do
24
- it 'should not see text' do
25
- @user.within(:column => 'Selleo') do
26
- not_see "19.00", "17.00", "5.00"
27
- end
28
- end
29
- end
30
-
31
- context 'when scoped by partial text' do
32
- it 'should not see text' do
33
- @user.within(:column => 'lleo') do
34
- not_see "19.00", "17.00", "5.00"
35
- end
36
- end
37
- end
38
- end
39
- end
@@ -1,24 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe '#not_see texts' do
4
- before do
5
- @user = Kameleon::User::Guest.new(self)
6
- @user.debug.visit('/texts.html')
7
- end
8
-
9
- it 'should not see single text' do
10
- @user.not_see 'cool rails app'
11
- end
12
-
13
- it 'should not see many texts at once' do
14
- @user.not_see 'sinatra app', 'padrino app'
15
- end
16
-
17
- context 'when at least one text is visibile' do
18
- it 'should raise error' do
19
- expect do
20
- @user.not_see 'sinatra app', 'This is simple app'
21
- end.to raise_error(RSpec::Expectations::ExpectationNotMetError)
22
- end
23
- end
24
- end
@@ -1,26 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe '#see counted elements' do
4
- before do
5
- @user = Kameleon::User::Guest.new(self)
6
- @user.debug.visit('/elements_counter.html')
7
- end
8
-
9
- context 'when page areas has attribute' do
10
- before do
11
- @user.stub!(:page_areas).and_return(:menu_link => [:xpath, '//ul[@id="menu"]/li/a'])
12
- end
13
-
14
- it 'should counted elements from page areas attribute' do
15
- @user.see 7 => :menu_link
16
- end
17
- end
18
-
19
- it "should see counted elements from css" do
20
- @user.see 5 => '#fiveElements'
21
- end
22
-
23
- it 'should see counted elements from xpath' do
24
- @user.see 5 => [:xpath, '//div[@id="fiveElements"]']
25
- end
26
- end
@@ -1,45 +0,0 @@
1
- #encoding: utf-8
2
- require 'spec_helper'
3
-
4
- describe '#see form elements - checkboxes' do
5
- before do
6
- @user = Kameleon::User::Guest.new(self)
7
- @user.debug.visit('/form_elements.html')
8
- end
9
-
10
- context 'when status checked' do
11
- it 'should verify by label' do
12
- @user.see :checked => 'Option two can also be checked and included in form results'
13
- end
14
-
15
- it 'should verify by name' do
16
- @user.see :checked => 'optionsCheckboxes_two'
17
- end
18
-
19
- it 'should verify many at once' do
20
- @user.see :checked => ['Appended checkbox', 'appendedInput', 'optionsCheckboxes_two']
21
- end
22
- end
23
-
24
- context 'when status unchecked' do
25
- it 'should verify by label' do
26
- @user.see :unchecked => "Option one is this and that—be sure to include why it's great"
27
- end
28
-
29
- it 'should verify by name' do
30
- @user.see :unchecked => 'optionsCheckboxes_one'
31
- end
32
-
33
- it 'should verify many at once' do
34
- @user.see :unchecked => ['Prepended checkbox', 'optionsCheckboxes', 'optionsCheckboxes_one']
35
- end
36
- end
37
-
38
- context 'when at least one has other status than other checkboxes' do
39
- it 'should raise error' do
40
- expect do
41
- @user.see :checked =>['Appended checkbox', 'appendedInput', 'optionsCheckboxes_one']
42
- end.to raise_error(RSpec::Expectations::ExpectationNotMetError)
43
- end
44
- end
45
- end
@@ -1,30 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe '#see disabled fields' do
4
- before do
5
- @user = Kameleon::User::Guest.new(self)
6
- @user.debug.visit('/form_elements.html')
7
- end
8
-
9
- it 'should verify status for id' do
10
- @user.see :disabled => 'disabledInput'
11
- end
12
-
13
- it 'should verify status for label' do
14
- @user.see :disabled => 'Disabled input'
15
- end
16
-
17
- context 'when many disabled fields at once' do
18
- it 'should verify status' do
19
- @user.see :disabled => ['Disabled input', 'Disabled textarea']
20
- end
21
-
22
- context 'when at least one is enabled' do
23
- it 'should raise error' do
24
- expect do
25
- @user.see :disabled => ['Disabled input', 'Disabled textarea', 'X-Large input']
26
- end.to raise_error(RSpec::Expectations::ExpectationNotMetError)
27
- end
28
- end
29
- end
30
- end
@@ -1,28 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe '#see empty fields' do
4
- before do
5
- @user = Kameleon::User::Guest.new(self)
6
- @user.debug.visit('/form_elements.html')
7
- end
8
-
9
- it 'should verify status for id' do
10
- @user.see :empty => 'prependedInput'
11
- end
12
-
13
- it 'should verify status for label' do
14
- @user.see :empty => 'Prepended text'
15
- end
16
-
17
- it 'should verify status for many fields' do
18
- @user.see :empty => ['Prepended text', 'Textarea']
19
- end
20
-
21
- context 'when at least one is not empty' do
22
- it 'should raise error' do
23
- expect do
24
- @user.see :empty => ['Prepended text', 'Sample Input']
25
- end.to raise_error(RSpec::Expectations::ExpectationNotMetError)
26
- end
27
- end
28
- end
@@ -1,38 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe '#see readonly fields' do
4
- before do
5
- @user = Kameleon::User::Guest.new(self)
6
- @user.debug.visit('/form_elements.html')
7
- end
8
-
9
- context 'when text inside fields is not provied' do
10
- it 'should verify status for id' do
11
- @user.see :readonly => 'readonlyInput'
12
- end
13
-
14
- it 'should verify status for label' do
15
- @user.see :readonly => 'Readonly input'
16
- end
17
-
18
- it 'should verify many fields at once' do
19
- @user.see :readonly => ['Readonly input', 'Readonly textarea']
20
- end
21
-
22
- context 'when field does not exist' do
23
- it 'should raise error' do
24
- expect do
25
- @user.see :readonly => 'DoesNotExist'
26
- end.to raise_error(RSpec::Expectations::ExpectationNotMetError)
27
- end
28
- end
29
-
30
- context 'when at least one is not readonly' do
31
- it 'should raise error' do
32
- expect do
33
- @user.see :readonly => ['Readonly input', 'X-Large input']
34
- end.to raise_error(RSpec::Expectations::ExpectationNotMetError)
35
- end
36
- end
37
- end
38
- end
@@ -1,28 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe '#see form elements - fields' do
4
- before do
5
- @user = Kameleon::User::Guest.new(self)
6
- @user.debug.visit('/form_elements.html')
7
- end
8
-
9
- it 'should see by label' do
10
- @user.see :field => 'X-Large input'
11
- end
12
-
13
- it 'should see by id' do
14
- @user.see :field => 'xlInput'
15
- end
16
-
17
- it 'should see many at once' do
18
- @user.see :fields => ['xlInput', 'multiSelect']
19
- end
20
-
21
- context 'when at least one does not exist' do
22
- it 'should raise error' do
23
- expect do
24
- @user.see :field => 'doestNotExist'
25
- end.to raise_error(RSpec::Expectations::ExpectationNotMetError)
26
- end
27
- end
28
- end
@@ -1,47 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe '#see form elements - multiple selects' do
4
- before do
5
- @user = Kameleon::User::Guest.new(self)
6
- @user.debug.visit('/form_elements.html')
7
- end
8
-
9
- context 'when status "selected"' do
10
- it 'should verify by id' do
11
- @user.see :selected => {'3' => 'normalSelect'}
12
- end
13
-
14
- it 'should verify by label' do
15
- @user.see :selected => {'3' => 'Select one option'}
16
- end
17
-
18
- it 'should verify many at once' do
19
- @user.see :selected => {'3' => 'Select one option',
20
- 'second option' => 'Disabled select one option'}
21
- end
22
- end
23
-
24
- context 'when status "unselected"' do
25
- it 'should verify by id' do
26
- @user.see :unselected => {'1' => 'Select one option'}
27
- end
28
-
29
- it 'should verify by label' do
30
- @user.see :unselected => {'5' => 'normalSelect'}
31
- end
32
-
33
- it 'should verify many status at once' do
34
- @user.see :unselected => {'5' => 'Select one option',
35
- '2' => 'Select one option'}
36
- end
37
- end
38
-
39
- context 'at least one has other status' do
40
- it 'should raise error' do
41
- expect do
42
- @user.see :selected => {'5' => 'Select one option',
43
- '3' => 'Select one option'}
44
- end.to raise_error(RSpec::Expectations::ExpectationNotMetError)
45
- end
46
- end
47
- end
@@ -1,35 +0,0 @@
1
- #encoding: utf-8
2
- require 'spec_helper'
3
-
4
- describe '#see form elements - radio buttons' do
5
- before do
6
- @user = Kameleon::User::Guest.new(self)
7
- @user.debug.visit('/form_elements.html')
8
- end
9
-
10
- context 'status "checked"' do
11
- it 'should verify checked status' do
12
- @user.see :checked => "Option one is this and that—be sure to include why it's great"
13
- end
14
- end
15
-
16
- context 'status "unchecked"' do
17
- it 'should verify unchecked status' do
18
- @user.see :unchecked => "Option two can is something else and selecting it will deselect options 1"
19
- end
20
-
21
- it 'should verify many radio buttons at once' do
22
- @user.see :unchecked => ["Option two can is something else and selecting it will deselect options 1",
23
- "Option three can is something else and selecting it will deselect options 1"]
24
- end
25
- end
26
-
27
- context 'at least one has other status' do
28
- it 'should raise error' do
29
- expect do
30
- @user.see :checked => ["Option one is this and that—be sure to include why it's great",
31
- "Option two can is something else and selecting it will deselect options 1"]
32
- end.to raise_error(RSpec::Expectations::ExpectationNotMetError)
33
- end
34
- end
35
- end
@@ -1,40 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe '#see form elements - selects' do
4
- before do
5
- @user = Kameleon::User::Guest.new(self)
6
- @user.debug.visit('/form_elements.html')
7
- end
8
-
9
- context 'status "selected"' do
10
- it 'should verify by id' do
11
- @user.see :selected => { '3' => 'normalSelect' }
12
- end
13
-
14
- it 'should verify by label' do
15
- @user.see :selected => { '3' => 'Select' }
16
- end
17
- end
18
-
19
- context 'status "unselected"' do
20
- it 'should verify by id' do
21
- @user.see :unselected => { '2' => 'normalSelect' }
22
- end
23
-
24
- it 'should verify by label' do
25
- @user.see :unselected => { '4' => 'Select' }
26
- end
27
-
28
- it 'should verify many options at once' do
29
- @user.see :unselected => { '1' => 'Select', '2' => 'Select' }
30
- end
31
- end
32
-
33
- context 'at least one has other status' do
34
- it 'should raise error' do
35
- expect do
36
- @user.see :selected => { '1' => 'Select', '3' => 'Select', '2' => 'Select' }
37
- end.to raise_error(RSpec::Expectations::ExpectationNotMetError)
38
- end
39
- end
40
- end
@@ -1,29 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe '#see form elements - textareas' do
4
- before do
5
- @user = Kameleon::User::Guest.new(self)
6
- @user.debug.visit('/form_elements.html')
7
- end
8
-
9
- it 'should see by id' do
10
- @user.see 'sample text in textarea' => 'textarea3'
11
- end
12
-
13
- it 'should see by label' do
14
- @user.see 'sample text in textarea' => 'Textarea 3'
15
- end
16
-
17
- it 'should see many at once' do
18
- @user.see 'sample text in second textarea 2' => 'secondTextarea2',
19
- 'sample text in textarea' => 'textarea3'
20
- end
21
-
22
- context 'when it does not exist' do
23
- it 'should raise error' do
24
- expect do
25
- @user.see 'this is great value' => 'textareaDoesNotExist'
26
- end.should raise_error(RSpec::Expectations::ExpectationNotMetError)
27
- end
28
- end
29
- end