acceptance_test 1.4.5 → 1.4.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MzQyY2YzZjk1MmRjNjI1NTI1MjU5ZjM4ZmRlOTA5ZWI5ZDkyMDg0Zg==
4
+ YTcyYjgyZDZhM2QwMTA3YThlMjAzNzZkZjZlNjYyYWNkOTA2MGVmMQ==
5
5
  data.tar.gz: !binary |-
6
- MDBjMjlkODFjZjQ5NzlmMzU1ZjE5ZWMyNDdjNDUzMjE5MDNmZmQzNA==
6
+ ZTk4NmIzNDk1MTdjMzExZTlkMDlhMTQyZjQ2YWU0YmIzNTllNGYzZg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZmM3YjQ1NGE4ZjNiMThhOTM3ZTQ0YTRkMTIzYWUzNjUyZDI3NTBmMTY0NjRj
10
- Mzc0N2JhYmE3YTU3ZmVlN2I4YjYyYWI1MjQ2MGVjMDYxN2RiYTEwN2U2MWYz
11
- NThmZjQ4YmQ0YzdjMTAzYjRjMWNlMWYzNmNhMTJiNmY0YWRlNmQ=
9
+ OWFlNWEwN2Y0Mjk4MDdhNGM0MWUzNTdlNDYxY2I2ZDMzNGU1ZTMwZTlmZWQx
10
+ YThjMWNjZDMwYWE3YzE0MWUyNmQ3NWVmYzczYjRkY2UzNmI0MWFjZDY2ZjJj
11
+ YjE1MGU5MjBiMjg3OWZlZGI2ZTRlNWI3OGYyODQxMGNhNTEyY2E=
12
12
  data.tar.gz: !binary |-
13
- ZDEwZTg3Yzk0MGM3YjNhOWY4OTBjNTFmZjg4OWZjMTk4ZGJhZGQyZWNiYjRm
14
- NGE4NmQ4YmZjYzBjNzliZTBkZWY3ODZlMjY1MTg5NjYzN2I5NGVmNGU0ZGMy
15
- YTMyNjU4NTYyMTYwZDQ5ZDFhMWVmMjkwYjhlYTZkZDdjMjVmZjg=
13
+ MDg0YWE3NDQwNGZjYTU1OTEzNWI5NzlkODViOTk4OTk4MTY1ZjE1NzhkMDgz
14
+ NjhjNGQ1NTA1YzkwOTQ5MWU3NDY2YmMxNzZkNzMxN2IyOTcyZDc5ZDRiZjE3
15
+ NzZjNWM1Njg5NjI1MTAyNjVhNWFlOTI5Y2RmZDZjNGQ5Mjk0NTM=
data/.idea/.rakeTasks CHANGED
@@ -4,4 +4,4 @@ You are allowed to:
4
4
  1. Remove rake task
5
5
  2. Add existing rake tasks
6
6
  To add existing rake tasks automatically delete this file and reload the project.
7
- --><RakeGroup description="" fullCmd="" taksId="rake"><RakeTask description="Run RSpec code examples" fullCmd="spec" taksId="spec" /><RakeTask description="" fullCmd="build" taksId="build" /><RakeTask description="" fullCmd="gen" taksId="gen" /><RakeTask description="" fullCmd="install" taksId="install" /><RakeTask description="" fullCmd="release" taksId="release" /><RakeTask description="" fullCmd="uninstall" taksId="uninstall" /></RakeGroup></Settings>
7
+ --><RakeGroup description="" fullCmd="" taksId="rake" /></Settings>
@@ -13,7 +13,7 @@
13
13
  </facet>
14
14
  </component>
15
15
  <component name="ModuleRunConfigurationManager">
16
- <configuration default="false" name="google_search_spec" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
16
+ <configuration default="false" name="Run spec 'wikipedia_search_with_config_spec': acceptance_test" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
17
17
  <predefined_log_file id="RUBY_RSPEC" enabled="true" />
18
18
  <module name="acceptance_test" />
19
19
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
@@ -33,7 +33,7 @@
33
33
  </EXTENSION>
34
34
  <EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
35
35
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
36
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/features/google_search_spec.rb" />
36
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/wikipedia_search_with_config_spec.rb" />
37
37
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
38
38
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
39
39
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
@@ -45,24 +45,22 @@
45
45
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
46
46
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
47
47
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
48
- <RunnerSettings RunnerId="RubyDebugRunner" />
49
48
  <RunnerSettings RunnerId="RubyRunner" />
50
- <ConfigurationWrapper RunnerId="RubyDebugRunner" />
51
49
  <ConfigurationWrapper RunnerId="RubyRunner" />
52
50
  <method />
53
51
  </configuration>
54
- <configuration default="false" name="acceptance_test: acceptance_test" type="TestUnitRunConfigurationType" factoryName="Test::Unit/Shoulda/Minitest" temporary="true">
55
- <predefined_log_file id="RUBY_TESTUNIT" enabled="true" />
52
+ <configuration default="false" name="google_search: acceptance_test" type="CucumberRunConfigurationType" factoryName="Cucumber" temporary="true">
53
+ <predefined_log_file id="RUBY_CUCUMBER" enabled="true" />
56
54
  <module name="acceptance_test" />
57
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
58
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$/lib/acceptance_test" />
59
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
60
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
61
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
55
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
56
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
57
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
58
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
59
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
62
60
  <envs>
63
61
  <env name="JRUBY_OPTS" value="-X+O" />
64
62
  </envs>
65
- <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
63
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
66
64
  <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
67
65
  <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
68
66
  <COVERAGE_PATTERN ENABLED="true">
@@ -70,27 +68,36 @@
70
68
  </COVERAGE_PATTERN>
71
69
  </EXTENSION>
72
70
  <EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
73
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
74
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/lib/acceptance_test/acceptance_test.rb" />
75
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="" />
76
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_METHOD_NAME" VALUE="" />
77
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
78
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
79
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
80
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
81
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_OPTIONS" VALUE="" />
71
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*.feature" />
72
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
73
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
74
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/features/wikipedia/wikipedia_search.feature" />
75
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_TAGS_FILTER" VALUE="" />
76
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_NAME_FILTER" VALUE="" />
77
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="CUCUMBER_ARGS" VALUE="--color -r features" />
78
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
79
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
80
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="VERBOSE_OPTION" VALUE="false" />
81
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
82
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
83
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
84
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="CUCUMBER_RUNNER_PATH" VALUE="" />
85
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_RUNNER" VALUE="false" />
86
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SETTINGS_VERSION" VALUE="2" />
87
+ <RunnerSettings RunnerId="RubyDebugRunner" />
82
88
  <RunnerSettings RunnerId="RubyRunner" />
89
+ <ConfigurationWrapper RunnerId="RubyDebugRunner" />
83
90
  <ConfigurationWrapper RunnerId="RubyRunner" />
84
91
  <method />
85
92
  </configuration>
86
- <configuration default="false" name="Run spec 'with_selenium_conf_spec': acceptance_test" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
87
- <predefined_log_file id="RUBY_RSPEC" enabled="true" />
93
+ <configuration default="false" name="wikipedia_from_csv: acceptance_test" type="CucumberRunConfigurationType" factoryName="Cucumber" temporary="true">
94
+ <predefined_log_file id="RUBY_CUCUMBER" enabled="true" />
88
95
  <module name="acceptance_test" />
89
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
90
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
91
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
92
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
93
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
96
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
97
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
98
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
99
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
100
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
94
101
  <envs>
95
102
  <env name="JRUBY_OPTS" value="-X+O" />
96
103
  </envs>
@@ -102,33 +109,36 @@
102
109
  </COVERAGE_PATTERN>
103
110
  </EXTENSION>
104
111
  <EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
105
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
106
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/features/with_selenium_conf_spec.rb" />
107
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
108
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
109
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
110
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
111
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
112
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
113
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
114
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
115
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
116
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
117
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
112
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*.feature" />
113
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
114
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
115
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/features/wikipedia/wikipedia_from_csv.feature" />
116
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_TAGS_FILTER" VALUE="" />
117
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_NAME_FILTER" VALUE="" />
118
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="CUCUMBER_ARGS" VALUE="--color -r features" />
119
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
120
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
121
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="VERBOSE_OPTION" VALUE="false" />
122
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
123
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
124
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
125
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="CUCUMBER_RUNNER_PATH" VALUE="" />
126
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_RUNNER" VALUE="false" />
127
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SETTINGS_VERSION" VALUE="2" />
118
128
  <RunnerSettings RunnerId="RubyDebugRunner" />
119
129
  <RunnerSettings RunnerId="RubyRunner" />
120
130
  <ConfigurationWrapper RunnerId="RubyDebugRunner" />
121
131
  <ConfigurationWrapper RunnerId="RubyRunner" />
122
132
  <method />
123
133
  </configuration>
124
- <configuration default="false" name=" uses webkit driver: acceptance_test" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
125
- <predefined_log_file id="RUBY_RSPEC" enabled="true" />
134
+ <configuration default="false" name="Searching with selenium for a term with submit: acceptance_test (1)" type="CucumberRunConfigurationType" factoryName="Cucumber" temporary="true">
135
+ <predefined_log_file id="RUBY_CUCUMBER" enabled="true" />
126
136
  <module name="acceptance_test" />
127
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
128
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
129
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
130
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
131
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
137
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
138
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
139
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
140
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
141
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
132
142
  <envs>
133
143
  <env name="JRUBY_OPTS" value="-X+O" />
134
144
  </envs>
@@ -140,33 +150,36 @@
140
150
  </COVERAGE_PATTERN>
141
151
  </EXTENSION>
142
152
  <EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
143
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
144
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/features/google_search_spec.rb" />
145
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
146
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
147
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE=" uses webkit driver" />
148
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
149
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
150
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
151
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
152
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
153
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
154
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
155
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
153
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*.feature" />
154
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
155
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
156
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/features/wikipedia/wikipedia_from_csv.feature" />
157
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_TAGS_FILTER" VALUE="" />
158
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_NAME_FILTER" VALUE="^Searching with selenium for a term with submit$" />
159
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="CUCUMBER_ARGS" VALUE="--color -r features" />
160
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
161
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
162
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="VERBOSE_OPTION" VALUE="false" />
163
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
164
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
165
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
166
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="CUCUMBER_RUNNER_PATH" VALUE="" />
167
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_RUNNER" VALUE="false" />
168
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SETTINGS_VERSION" VALUE="2" />
156
169
  <RunnerSettings RunnerId="RubyDebugRunner" />
157
170
  <RunnerSettings RunnerId="RubyRunner" />
158
171
  <ConfigurationWrapper RunnerId="RubyDebugRunner" />
159
172
  <ConfigurationWrapper RunnerId="RubyRunner" />
160
173
  <method />
161
174
  </configuration>
162
- <configuration default="false" name=" uses selenium driver: acceptance_test" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
163
- <predefined_log_file id="RUBY_RSPEC" enabled="true" />
175
+ <configuration default="false" name="Searching with selenium for a term with submit: acceptance_test" type="CucumberRunConfigurationType" factoryName="Cucumber" temporary="true">
176
+ <predefined_log_file id="RUBY_CUCUMBER" enabled="true" />
164
177
  <module name="acceptance_test" />
165
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
166
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
167
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
168
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
169
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
178
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
179
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
180
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
181
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
182
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
170
183
  <envs>
171
184
  <env name="JRUBY_OPTS" value="-X+O" />
172
185
  </envs>
@@ -178,20 +191,25 @@
178
191
  </COVERAGE_PATTERN>
179
192
  </EXTENSION>
180
193
  <EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
181
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
182
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/features/google_search_spec.rb" />
183
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
184
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
185
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE=" uses selenium driver" />
186
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
187
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
188
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
189
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
190
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
191
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
192
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
193
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
194
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*.feature" />
195
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
196
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
197
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/features/wikipedia/wikipedia_from_csv.feature" />
198
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_TAGS_FILTER" VALUE="" />
199
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_NAME_FILTER" VALUE="^Searching with selenium for a term with submit$" />
200
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="CUCUMBER_ARGS" VALUE="--color -r features" />
201
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
202
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
203
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="VERBOSE_OPTION" VALUE="false" />
204
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
205
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
206
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
207
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="CUCUMBER_RUNNER_PATH" VALUE="" />
208
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_RUNNER" VALUE="false" />
209
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SETTINGS_VERSION" VALUE="2" />
210
+ <RunnerSettings RunnerId="RubyDebugRunner" />
194
211
  <RunnerSettings RunnerId="RubyRunner" />
212
+ <ConfigurationWrapper RunnerId="RubyDebugRunner" />
195
213
  <ConfigurationWrapper RunnerId="RubyRunner" />
196
214
  <method />
197
215
  </configuration>
@@ -201,18 +219,21 @@
201
219
  <orderEntry type="jdk" jdkName="RVM: ruby-1.9.3-p547 [acceptance_test]" jdkType="RUBY_SDK" />
202
220
  <orderEntry type="sourceFolder" forTests="false" />
203
221
  <orderEntry type="library" scope="PROVIDED" name="activesupport (v4.1.6, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
222
+ <orderEntry type="library" scope="PROVIDED" name="builder (v3.2.2, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
204
223
  <orderEntry type="library" scope="PROVIDED" name="bundler (v1.7.2, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
205
224
  <orderEntry type="library" scope="PROVIDED" name="capybara (v2.4.1, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
206
225
  <orderEntry type="library" scope="PROVIDED" name="capybara-firebug (v2.1.0, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
207
226
  <orderEntry type="library" scope="PROVIDED" name="capybara-webkit (v1.3.0, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
208
227
  <orderEntry type="library" scope="PROVIDED" name="childprocess (v0.5.3, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
209
228
  <orderEntry type="library" scope="PROVIDED" name="cliver (v0.3.2, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
229
+ <orderEntry type="library" scope="PROVIDED" name="cucumber (v1.3.17, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
210
230
  <orderEntry type="library" scope="PROVIDED" name="debugger-ruby_core_source (v1.3.5, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
211
231
  <orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.2.5, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
212
232
  <orderEntry type="library" scope="PROVIDED" name="ffi (v1.9.3, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
213
233
  <orderEntry type="library" scope="PROVIDED" name="file_utils (v1.0.7, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
214
234
  <orderEntry type="library" scope="PROVIDED" name="gemcutter (v0.7.1, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
215
235
  <orderEntry type="library" scope="PROVIDED" name="gemspec_deps_gen (v1.1.2, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
236
+ <orderEntry type="library" scope="PROVIDED" name="gherkin (v2.12.2, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
216
237
  <orderEntry type="library" scope="PROVIDED" name="i18n (v0.6.11, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
217
238
  <orderEntry type="library" scope="PROVIDED" name="json (v1.8.1, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
218
239
  <orderEntry type="library" scope="PROVIDED" name="metaclass (v0.0.4, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
@@ -221,6 +242,7 @@
221
242
  <orderEntry type="library" scope="PROVIDED" name="minitest (v5.4.1, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
222
243
  <orderEntry type="library" scope="PROVIDED" name="mocha (v1.1.0, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
223
244
  <orderEntry type="library" scope="PROVIDED" name="multi_json (v1.10.1, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
245
+ <orderEntry type="library" scope="PROVIDED" name="multi_test (v0.1.1, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
224
246
  <orderEntry type="library" scope="PROVIDED" name="nokogiri (v1.6.3.1, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
225
247
  <orderEntry type="library" scope="PROVIDED" name="poltergeist (v1.5.1, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
226
248
  <orderEntry type="library" scope="PROVIDED" name="rack (v1.5.2, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
@@ -228,6 +250,7 @@
228
250
  <orderEntry type="library" scope="PROVIDED" name="rake (v10.3.2, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
229
251
  <orderEntry type="library" scope="PROVIDED" name="rspec (v3.1.0, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
230
252
  <orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.1.3, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
253
+ <orderEntry type="library" scope="PROVIDED" name="rspec-example_steps (v3.0.2, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
231
254
  <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.1.1, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
232
255
  <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.1.0, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
233
256
  <orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.1.0, RVM: ruby-1.9.3-p547 [acceptance_test]) [gem]" level="application" />
data/CHANGES CHANGED
@@ -95,4 +95,8 @@
95
95
 
96
96
  == Version 1.4.5
97
97
 
98
- * Bug fix
98
+ * Bug fix
99
+
100
+ == Version 1.4.6
101
+
102
+ * Bug fixes
data/Gemfile CHANGED
@@ -17,6 +17,8 @@ group :acceptance_test do
17
17
  gem "selenium-webdriver", "~> 2.43.0"
18
18
 
19
19
  gem "capybara-webkit", "~> 1.3.0"
20
+ gem "cucumber", "~> 1.3.17"
21
+ gem "rspec-example_steps", "~> 3.0.2"
20
22
 
21
23
  # Note: You need to install qt:
22
24
  # Mac: brew install qt
data/Gemfile.lock CHANGED
@@ -7,6 +7,7 @@ GEM
7
7
  minitest (~> 5.1)
8
8
  thread_safe (~> 0.1)
9
9
  tzinfo (~> 1.1)
10
+ builder (3.2.2)
10
11
  capybara (2.4.1)
11
12
  mime-types (>= 1.16)
12
13
  nokogiri (>= 1.3.3)
@@ -22,6 +23,12 @@ GEM
22
23
  childprocess (0.5.3)
23
24
  ffi (~> 1.0, >= 1.0.11)
24
25
  cliver (0.3.2)
26
+ cucumber (1.3.17)
27
+ builder (>= 2.1.2)
28
+ diff-lcs (>= 1.1.3)
29
+ gherkin (~> 2.12)
30
+ multi_json (>= 1.7.5, < 2.0)
31
+ multi_test (>= 0.1.1)
25
32
  debugger-ruby_core_source (1.3.5)
26
33
  diff-lcs (1.2.5)
27
34
  ffi (1.9.3)
@@ -30,6 +37,8 @@ GEM
30
37
  gemspec_deps_gen (1.1.2)
31
38
  bundler
32
39
  file_utils
40
+ gherkin (2.12.2)
41
+ multi_json (~> 1.3)
33
42
  i18n (0.6.11)
34
43
  json (1.8.1)
35
44
  metaclass (0.0.4)
@@ -39,6 +48,7 @@ GEM
39
48
  mocha (1.1.0)
40
49
  metaclass (~> 0.0.1)
41
50
  multi_json (1.10.1)
51
+ multi_test (0.1.1)
42
52
  nokogiri (1.6.3.1)
43
53
  mini_portile (= 0.6.0)
44
54
  poltergeist (1.5.1)
@@ -56,6 +66,8 @@ GEM
56
66
  rspec-mocks (~> 3.1.0)
57
67
  rspec-core (3.1.3)
58
68
  rspec-support (~> 3.1.0)
69
+ rspec-example_steps (3.0.2)
70
+ rspec-core (>= 3.0.0)
59
71
  rspec-expectations (3.1.1)
60
72
  diff-lcs (>= 1.2.0, < 2.0)
61
73
  rspec-support (~> 3.1.0)
@@ -89,12 +101,14 @@ DEPENDENCIES
89
101
  capybara (~> 2.4.1)
90
102
  capybara-firebug (~> 2.1.0)
91
103
  capybara-webkit (~> 1.3.0)
104
+ cucumber (~> 1.3.17)
92
105
  debugger-ruby_core_source
93
106
  gemcutter
94
107
  gemspec_deps_gen
95
108
  mocha
96
109
  poltergeist (~> 1.5.1)
97
110
  rspec
111
+ rspec-example_steps (~> 3.0.2)
98
112
  ruby-debug-base19x (= 0.11.30.pre12)
99
113
  ruby-debug-ide (= 0.4.17)
100
114
  selenium-webdriver (~> 2.43.0)
@@ -0,0 +1,72 @@
1
+ require 'acceptance_test'
2
+ require 'acceptance_test/cucumber_helper.rb'
3
+
4
+ require 'csv'
5
+
6
+ acceptance_test = nil
7
+
8
+ cucumber_helper = CucumberHelper.instance
9
+
10
+ def create_acceptance_test scenario, cucumber_helper
11
+ source_type = cucumber_helper.source_type(scenario)
12
+
13
+ if source_type == 'file'
14
+ source_path = cucumber_helper.source_path(scenario)
15
+
16
+ keys = [["keyword"]]
17
+ values = CSV.read(File.expand_path(source_path))
18
+
19
+ cucumber_helper.set_outline_table scenario, keys, values
20
+ end
21
+
22
+ config_name = File.expand_path("spec/acceptance_config.yml")
23
+ config = HashWithIndifferentAccess.new(YAML.load_file(config_name))
24
+
25
+ AcceptanceTest.new config
26
+ end
27
+
28
+ Before do |scenario|
29
+ acceptance_test = create_acceptance_test(scenario, cucumber_helper)
30
+
31
+ acceptance_test.before cucumber_helper.metadata_from_scenario(scenario)
32
+ end
33
+
34
+ After do |scenario|
35
+ acceptance_test.after cucumber_helper.metadata_from_scenario(scenario)
36
+
37
+ reset_session!
38
+ end
39
+
40
+ Given(/^I am within wikipedia\.com$/) do
41
+ Capybara.app_host = "http://wikipedia.com"
42
+ end
43
+
44
+ Given /^I am on wikipedia\.com$/ do
45
+ visit('/')
46
+ end
47
+
48
+ When /^I enter "([^"]*)"$/ do |_|
49
+ fill_in "searchInput", :with => "Capybara"
50
+ end
51
+
52
+ When(/^I enter word (.*)$/) do |keyword|
53
+ keyword = keyword.gsub("\"", '')
54
+
55
+ fill_in "searchInput", :with => keyword
56
+ end
57
+
58
+ Then /^I should see css "([^"]*)"$/ do |css|
59
+ expect(page).to have_css(css)
60
+ end
61
+
62
+ When(/^click submit button$/) do
63
+ find(".formBtn", match: :first).click
64
+ end
65
+
66
+ Then(/^I should see results: "([^"]*)"$/) do |results|
67
+ expect(page).to have_content "Hydrochoerus hydrochaeris"
68
+ end
69
+
70
+ Then(/^I should see keyword results: (.*)$/) do |keyword|
71
+ expect(page).to have_content keyword
72
+ end
@@ -0,0 +1,3 @@
1
+ Capybara
2
+ Wombat
3
+ Echidna
@@ -0,0 +1 @@
1
+ require 'capybara/cucumber'
@@ -0,0 +1,16 @@
1
+ Feature: Using Wikipedia
2
+
3
+ Background: within wikipedia.com context
4
+ Given I am within wikipedia.com
5
+
6
+ @selenium
7
+ Scenario Outline: Searching with selenium for a term with submit
8
+
9
+ Given I am on wikipedia.com
10
+ When I enter word <keyword>
11
+ And click submit button
12
+ Then I should see keyword results: <keyword>
13
+
14
+ Examples:
15
+ | file |
16
+ | features/wikipedia/support/data.csv |
@@ -0,0 +1,28 @@
1
+ Feature: Using Wikipedia
2
+
3
+ Background: within wikipedia.com context
4
+ Given I am within wikipedia.com
5
+
6
+ @selenium
7
+ Scenario: Searching with selenium for a term with submit
8
+
9
+ Given I am on wikipedia.com
10
+ When I enter "Capybara"
11
+ And click submit button
12
+ Then I should see results: "Capybara"
13
+
14
+ @webkit
15
+ Scenario: Searching with selenium for a term with submit
16
+
17
+ Given I am on wikipedia.com
18
+ When I enter "Capybara"
19
+ And click submit button
20
+ Then I should see results: "Capybara"
21
+
22
+ @poltergeist
23
+ Scenario: Searching with selenium for a term with submit
24
+
25
+ Given I am on wikipedia.com
26
+ When I enter "Capybara"
27
+ And click submit button
28
+ Then I should see results: "Capybara"
@@ -1,23 +1,48 @@
1
1
  require 'uri'
2
- require 'capybara'
2
+ require 'fileutils'
3
3
 
4
+ require 'capybara'
5
+ require "capybara/dsl"
4
6
  require 'active_support/core_ext/hash'
5
7
 
6
- require 'acceptance_test/acceptance_test_helper'
7
-
8
8
  class AcceptanceTest
9
- attr_reader :project_root, :config, :screenshot_dir
10
- attr_accessor :app_host
9
+ attr_reader :config
11
10
 
12
- def initialize project_root, config, screenshot_dir
13
- @project_root = File.expand_path(project_root.to_s)
14
- @screenshot_dir = File.expand_path(screenshot_dir.to_s)
11
+ def initialize config={}
12
+ if config
13
+ @config = config.kind_of?(HashWithIndifferentAccess) ? config : HashWithIndifferentAccess.new(config)
14
+ else
15
+ @config = HashWithIndifferentAccess.new
16
+
17
+ config[:screenshot_dir] = File.expand_path('tmp')
18
+ end
15
19
 
16
- @app_host = default_app_host
20
+ Capybara.configure do |conf|
21
+ conf.default_wait_time = timeout_in_seconds
22
+ conf.match = :first
17
23
 
18
- @config = config.kind_of?(HashWithIndifferentAccess) ? config : HashWithIndifferentAccess.new(config)
24
+ conf.ignore_hidden_elements = false
25
+ end
26
+
27
+ ENV['APP_HOST'] ||= config[:webapp_url]
28
+ ENV['WAIT_TIME'] ||= Capybara.default_wait_time.to_s
29
+
30
+ # try to load capybara-related rspec library
31
+ begin
32
+ require 'capybara/rspec'
33
+
34
+ RSpec.configure do |config|
35
+ config.filter_run_excluding :exclude => true
36
+ end
37
+
38
+ RSpec.configure do |config|
39
+ config.include Capybara::DSL
40
+ end
19
41
 
20
- configure
42
+ RSpec::Core::ExampleGroup.send :include, Capybara::DSL
43
+ rescue
44
+ ;
45
+ end
21
46
  end
22
47
 
23
48
  def before metadata={}
@@ -29,15 +54,17 @@ class AcceptanceTest
29
54
  select_driver driver
30
55
  end
31
56
 
32
- # puts "Current Driver : #{Capybara.current_driver}"
33
-
34
- setup_app_host app_host
57
+ Capybara.app_host = config[:webapp_url]
35
58
  end
36
59
 
37
60
  def after metadata={}, exception=nil, page=nil
38
61
  driver = driver(metadata)
39
62
 
40
63
  if driver and exception and page and not [:webkit].include? driver
64
+ screenshot_dir = File.expand_path(config[:screenshot_dir])
65
+
66
+ FileUtils.mkdir_p screenshot_dir
67
+
41
68
  screenshot_maker = ScreenshotMaker.new screenshot_dir
42
69
 
43
70
  screenshot_maker.make page, metadata
@@ -49,6 +76,36 @@ class AcceptanceTest
49
76
  Capybara.current_driver = Capybara.default_driver
50
77
  end
51
78
 
79
+ def create_shared_context name
80
+ throw "rspec library is not available" unless defined? RSpec
81
+
82
+ acceptance_test = self
83
+
84
+ acceptance_test_lambda = lambda do
85
+ attr_reader :acceptance_test
86
+
87
+ before :all do
88
+ @acceptance_test = acceptance_test
89
+ end
90
+
91
+ before do |example|
92
+ acceptance_test.before example.metadata
93
+ end
94
+
95
+ after do |example|
96
+ acceptance_test.after example.metadata, example.exception, page
97
+
98
+ self.reset_session!
99
+ end
100
+ end
101
+
102
+ RSpec.shared_context name do
103
+ self.define_singleton_method(:include_context, acceptance_test_lambda)
104
+
105
+ include_context
106
+ end
107
+ end
108
+
52
109
  def driver metadata
53
110
  driver = ENV['DRIVER'].nil? ? nil : ENV['DRIVER'].to_sym
54
111
 
@@ -69,50 +126,6 @@ class AcceptanceTest
69
126
 
70
127
  private
71
128
 
72
- def default_app_host
73
- "http://#{AcceptanceTestHelper.instance.get_localhost}:3000"
74
- end
75
-
76
- def configure
77
- run_server = (ENV['RUN_SERVER'] == "true")
78
-
79
- if run_server and defined? Rails
80
- require 'rspec/rails'
81
- require "capybara/rails"
82
- end
83
-
84
- require "capybara"
85
- require "capybara/dsl"
86
-
87
- # try to load capybara-related rspec library
88
- begin
89
- require 'capybara/rspec'
90
- rescue
91
- ;
92
- end
93
-
94
- if defined? RSpec
95
- RSpec.configure do |config|
96
- config.filter_run_excluding :exclude => true
97
- end
98
-
99
- RSpec.configure do |config|
100
- config.include Capybara::DSL
101
- end
102
-
103
- RSpec::Core::ExampleGroup.send :include, Capybara::DSL
104
- end
105
-
106
- Capybara.configure do |config|
107
- config.default_wait_time = timeout_in_seconds
108
-
109
- config.run_server = run_server
110
- end
111
-
112
- ENV['APP_HOST'] ||= app_host
113
- ENV['WAIT_TIME'] ||= Capybara.default_wait_time.to_s
114
- end
115
-
116
129
  def timeout_in_seconds
117
130
  if ENV['WAIT_TIME']
118
131
  ENV['WAIT_TIME'].to_i
@@ -188,10 +201,12 @@ class AcceptanceTest
188
201
  def select_driver driver
189
202
  if selenium_driver?(driver)
190
203
  if driver == :selenium_remote
191
- setup_driver_from_config driver
204
+ Capybara.current_driver = driver
205
+ Capybara.javascript_driver = driver
192
206
  else
193
207
  if acceptance_config_exist?
194
- setup_driver_from_config driver
208
+ Capybara.current_driver = driver
209
+ Capybara.javascript_driver = driver
195
210
  else
196
211
  if Capybara.drivers[driver]
197
212
  Capybara.current_driver = driver
@@ -207,28 +222,18 @@ class AcceptanceTest
207
222
  end
208
223
  end
209
224
 
210
- def setup_app_host app_host
211
- Capybara.app_host = app_host
212
- Capybara.server_port = URI.parse(app_host).port
213
- end
214
-
215
- def app_host_from_url url
216
- uri = URI(url)
217
-
218
- "#{uri.scheme}://#{uri.host}:#{uri.port}"
219
- end
220
-
221
225
  def acceptance_config_exist?
222
226
  not config.nil?
223
227
  end
224
228
 
225
- def setup_driver_from_config driver
226
- @app_host = app_host_from_url(config[:webapp_url])
227
-
228
- # Rails.env = config[:env] if defined? Rails.env
229
-
230
- Capybara.current_driver = driver
231
- Capybara.javascript_driver = driver
232
- end
233
-
229
+ # def self.get_localhost
230
+ # orig, Socket.do_not_reverse_lookup = Socket.do_not_reverse_lookup, true # turn off reverse DNS resolution temporarily
231
+ #
232
+ # UDPSocket.open do |s|
233
+ # s.connect '192.168.1.1', 1
234
+ # s.addr.last
235
+ # end
236
+ # ensure
237
+ # Socket.do_not_reverse_lookup = orig
238
+ # end
234
239
  end
@@ -5,42 +5,23 @@ require 'cucumber/ast/outline_table'
5
5
  class CucumberHelper
6
6
  include Singleton
7
7
 
8
- def enable_external_source data
9
- outline_table = Cucumber::Ast::OutlineTable
8
+ def source_type scenario
9
+ examples = scenario.instance_variable_get(:@example_sections)
10
10
 
11
- outline_table.class_eval do
12
- @data = data # class instance variable
13
-
14
- def self.data # access to class instance variable
15
- @data
16
- end
17
-
18
- def initialize(raw, scenario_outline)
19
- new_raw = raw
20
-
21
- name = raw[0][0]
22
-
23
- if name == 'external_source'
24
- test_name, parameter_name = raw[1][0].split(":")
25
-
26
- if Cucumber::Ast::OutlineTable.data[test_name]
27
- size = Cucumber::Ast::OutlineTable.data[test_name][parameter_name].size
11
+ examples[0][0][5][0][0]
12
+ end
28
13
 
29
- new_raw = Array.new(size+1) {Array.new(1)}
30
- new_raw[0][0] = parameter_name
14
+ def source_path scenario
15
+ examples = scenario.instance_variable_get(:@example_sections)
31
16
 
32
- Cucumber::Ast::OutlineTable.data[test_name][parameter_name].each_with_index do |value, index|
33
- new_raw[index+1][0] = value
34
- end
35
- end
36
- end
17
+ examples[0][0][5][1][0]
18
+ end
37
19
 
38
- super(new_raw)
20
+ def set_outline_table scenario, keys, values
21
+ examples = scenario.instance_variable_get(:@example_sections)
39
22
 
40
- @scenario_outline = scenario_outline
41
- @cells_class = Cucumber::Ast::OutlineTable::ExampleRow
42
- init
43
- end
23
+ if source_type(scenario) == 'file'
24
+ examples[0][0][5] = keys + values
44
25
  end
45
26
  end
46
27
 
@@ -59,4 +40,5 @@ class CucumberHelper
59
40
 
60
41
  metadata
61
42
  end
43
+
62
44
  end
@@ -1,3 +1,3 @@
1
1
  class AcceptanceTest
2
- VERSION = "1.4.5"
2
+ VERSION = "1.4.6"
3
3
  end
@@ -1,7 +1,9 @@
1
- webapp_url: 'http://www.google.com'
1
+ webapp_url: 'http://www.wikipedia.org'
2
2
 
3
3
  selenium_url: 'http://localhost:4444'
4
4
 
5
+ screenshot_dir: 'tmp'
6
+
5
7
  browser: 'firefox'
6
8
 
7
9
  timeout_in_seconds: 40
@@ -0,0 +1,46 @@
1
+ require 'acceptance_test'
2
+
3
+ acceptance_test = AcceptanceTest.new({webapp_url: "http://www.wikipedia.org", timeout_in_seconds: 10})
4
+
5
+ RSpec.describe 'Wikipedia Search' do
6
+
7
+ before do |example|
8
+ puts "Using driver: #{Capybara.current_driver}."
9
+ puts "Default wait time: #{Capybara.default_wait_time}."
10
+ acceptance_test.before example.metadata
11
+ end
12
+
13
+ after do |example|
14
+ acceptance_test.after example.metadata
15
+ end
16
+
17
+ it "uses selenium driver", driver: :selenium, exclude: false do
18
+ visit('/')
19
+
20
+ fill_in "searchInput", :with => "Capybara"
21
+
22
+ find(".formBtn", match: :first).click
23
+
24
+ expect(page).to have_content "Hydrochoerus hydrochaeris"
25
+ end
26
+
27
+ it "uses webkit driver", driver: :webkit do
28
+ visit('/')
29
+
30
+ fill_in "searchInput", :with => "Capybara"
31
+
32
+ find(".formBtn", match: :first).click
33
+
34
+ expect(page).to have_content "Hydrochoerus hydrochaeris"
35
+ end
36
+
37
+ it "uses poltergeist driver", driver: :poltergeist do
38
+ visit('/')
39
+
40
+ fill_in "searchInput", :with => "Capybara"
41
+
42
+ find(".formBtn", match: :first).click
43
+
44
+ expect(page).to have_content "Hydrochoerus hydrochaeris"
45
+ end
46
+ end
@@ -0,0 +1,27 @@
1
+ require 'acceptance_test'
2
+ require 'yaml'
3
+
4
+ config_name = File.expand_path("spec/acceptance_config.yml")
5
+ config = config_name ? HashWithIndifferentAccess.new(YAML.load_file(config_name)) : {}
6
+
7
+ acceptance_test = AcceptanceTest.new config
8
+
9
+ acceptance_test.create_shared_context "WikipediaAcceptanceTest"
10
+
11
+ puts "Application URL : #{config[:webapp_url]}" if config[:webapp_url]
12
+ puts "Selenium URL : #{config[:selenium_url]}" if config[:selenium_url]
13
+ puts "Default Wait Time : #{Capybara.default_wait_time}"
14
+
15
+ RSpec.describe 'Wikipedia Search' do
16
+ include_context "WikipediaAcceptanceTest"
17
+
18
+ it "uses selenium driver", driver: :selenium do
19
+ visit('/')
20
+
21
+ fill_in "searchInput", :with => "Capybara"
22
+
23
+ find(".formBtn", match: :first).click
24
+
25
+ expect(page).to have_content "Hydrochoerus hydrochaeris"
26
+ end
27
+ end
@@ -0,0 +1,35 @@
1
+ # ENV["RAILS_ENV"] ||= 'test'
2
+ # puts "Environment: #{ENV["RAILS_ENV"]}"
3
+ #
4
+ require 'rspec'
5
+ require 'rspec/example_steps'
6
+ require "capybara-webkit"
7
+
8
+ RSpec.configure do |config|
9
+ config.include Capybara::DSL
10
+ end
11
+
12
+ Capybara.app_host = "http://www.wikipedia.org"
13
+ Capybara.default_driver = :selenium
14
+
15
+ RSpec.describe "Searching" do
16
+ Steps "Result found" do
17
+ Given "I am on wikipedia.com" do
18
+ visit('/')
19
+ end
20
+
21
+ When "I enter \"Capybara\"" do
22
+ fill_in "searchInput", :with => "Capybara"
23
+ end
24
+
25
+ When "click submit button" do
26
+ find(".formBtn", match: :first).click
27
+ end
28
+
29
+ Then "I should see results" do
30
+ expect(page).to have_content "Hydrochoerus hydrochaeris"
31
+ end
32
+ end
33
+
34
+ end
35
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acceptance_test
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.5
4
+ version: 1.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Shvets
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-25 00:00:00.000000000 Z
11
+ date: 2014-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gemspec_deps_gen
@@ -63,18 +63,22 @@ files:
63
63
  - Rakefile
64
64
  - acceptance_test.gemspec
65
65
  - acceptance_test.gemspec.erb
66
+ - features/wikipedia/step_definitions/steps.rb
67
+ - features/wikipedia/support/data.csv
68
+ - features/wikipedia/support/env.rb
69
+ - features/wikipedia/wikipedia_from_csv.feature
70
+ - features/wikipedia/wikipedia_search.feature
66
71
  - lib/acceptance_test.rb
67
72
  - lib/acceptance_test/acceptance_test.rb
68
- - lib/acceptance_test/acceptance_test_helper.rb
69
73
  - lib/acceptance_test/cucumber_helper.rb
70
74
  - lib/acceptance_test/page.rb
71
75
  - lib/acceptance_test/page_set.rb
72
76
  - lib/acceptance_test/screenshot_maker.rb
73
77
  - lib/acceptance_test/version.rb
74
- - spec/features/acceptance_config.yml
75
- - spec/features/google_search_spec.rb
76
- - spec/features/spec_helper.rb
77
- - spec/features/with_selenium_conf_spec.rb
78
+ - spec/acceptance_config.yml
79
+ - spec/wikipedia_search_spec.rb
80
+ - spec/wikipedia_search_with_config_spec.rb
81
+ - spec/wikipedia_search_with_steps.rb
78
82
  homepage: http://github.com/shvets/acceptance_test
79
83
  licenses:
80
84
  - MIT
@@ -100,7 +104,12 @@ signing_key:
100
104
  specification_version: 4
101
105
  summary: Simplifies congiguration and run of acceptance tests.
102
106
  test_files:
103
- - spec/features/acceptance_config.yml
104
- - spec/features/google_search_spec.rb
105
- - spec/features/spec_helper.rb
106
- - spec/features/with_selenium_conf_spec.rb
107
+ - features/wikipedia/step_definitions/steps.rb
108
+ - features/wikipedia/support/data.csv
109
+ - features/wikipedia/support/env.rb
110
+ - features/wikipedia/wikipedia_from_csv.feature
111
+ - features/wikipedia/wikipedia_search.feature
112
+ - spec/acceptance_config.yml
113
+ - spec/wikipedia_search_spec.rb
114
+ - spec/wikipedia_search_with_config_spec.rb
115
+ - spec/wikipedia_search_with_steps.rb
@@ -1,75 +0,0 @@
1
- require 'yaml'
2
- require 'singleton'
3
- require 'active_support/core_ext/hash'
4
-
5
- class AcceptanceTestHelper
6
- include Singleton
7
-
8
- def create_acceptance_test project_root, config_name, screenshot_dir
9
- Capybara.configure do |config|
10
- config.match = :first
11
-
12
- config.ignore_hidden_elements = false
13
- end
14
-
15
- project_root = File.expand_path(project_root.to_s)
16
-
17
- config = HashWithIndifferentAccess.new(YAML.load_file(config_name))
18
-
19
- system "mkdir -p #{screenshot_dir}"
20
-
21
- acceptance_test = AcceptanceTest.new project_root, config, screenshot_dir
22
-
23
- ENV['ASSET_HOST'] = acceptance_test.app_host
24
-
25
- puts "Application URL : #{config[:webapp_url]}"
26
- puts "Selenium URL : #{config[:selenium_url]}" if config[:selenium_url]
27
- puts "Default Wait Time : #{Capybara.default_wait_time}"
28
-
29
- acceptance_test
30
- end
31
-
32
- def create_shared_context acceptance_test, name
33
- throw "rspec library is not available" unless defined? RSpec
34
-
35
- acceptance_test_lambda = lambda do
36
- attr_reader :acceptance_test
37
-
38
- before :all do
39
- @acceptance_test = acceptance_test
40
- end
41
-
42
- before do
43
- metadata = RSpec.current_example.metadata
44
-
45
- acceptance_test.before metadata
46
- end
47
-
48
- after do
49
- metadata = RSpec.current_example.metadata
50
-
51
- acceptance_test.after metadata, RSpec.current_example.exception, page
52
-
53
- self.reset_session!
54
- end
55
- end
56
-
57
- RSpec.shared_context name do
58
- self.define_singleton_method(:include_context, acceptance_test_lambda)
59
-
60
- include_context
61
- end
62
- end
63
-
64
- def get_localhost
65
- orig, Socket.do_not_reverse_lookup = Socket.do_not_reverse_lookup, true # turn off reverse DNS resolution temporarily
66
-
67
- UDPSocket.open do |s|
68
- s.connect '192.168.1.1', 1
69
- s.addr.last
70
- end
71
- ensure
72
- Socket.do_not_reverse_lookup = orig
73
- end
74
-
75
- end
@@ -1,54 +0,0 @@
1
- require File.expand_path("spec/features/spec_helper")
2
-
3
- RSpec.describe 'Google Search' do
4
- include_context "GoogleAcceptanceTest"
5
-
6
- before :all do
7
- acceptance_test.app_host = "http://www.google.com"
8
- end
9
-
10
- before do
11
- puts "Using driver: #{Capybara.current_driver}."
12
- puts "Default wait time: #{Capybara.default_wait_time}."
13
- end
14
-
15
- it "uses selenium driver", driver: :selenium, exclude: false do
16
- visit('/')
17
-
18
- fill_in "q", :with => "Capybara"
19
-
20
- find("#gbqfbw button").click
21
-
22
- # all(:xpath, "//li[@class='g']/h3/a").each { |a| puts a[:href] }
23
- end
24
-
25
- it "uses webkit driver", driver: :webkit do
26
- pending
27
- visit('/')
28
-
29
- fill_in "q", :with => "Capybara"
30
-
31
- has_selector? ".gsfs .gssb_g span.ds input.lsb", :visible => true # wait for ajax to be finished
32
-
33
- button = first(".gsfs .gssb_g span.ds input.lsb")
34
-
35
- button.click
36
-
37
- #all(:xpath, "//li[@class='g']/h3/a").each { |a| puts a[:href] }
38
- end
39
-
40
- it "uses poltergeist driver", driver: :poltergeist do
41
- pending
42
- visit('/')
43
-
44
- fill_in "q", :with => "Capybara"
45
-
46
- has_selector? ".gsfs .gssb_g span.ds input.lsb", :visible => true # wait for ajax to be finished
47
-
48
- button = first(".gsfs .gssb_g span.ds input.lsb")
49
-
50
- button.click
51
-
52
- all(:xpath, "//li[@class='g']/h3/a").each { |a| puts a[:href] }
53
- end
54
- end
@@ -1,9 +0,0 @@
1
- require 'acceptance_test'
2
-
3
- config_name = File.expand_path("spec/features/acceptance_config.yml")
4
-
5
- helper = AcceptanceTestHelper.instance
6
-
7
- acceptance_test = helper.create_acceptance_test ".", config_name, "tmp"
8
-
9
- helper.create_shared_context acceptance_test, "GoogleAcceptanceTest"
@@ -1,15 +0,0 @@
1
- File.expand_path("spec/features/spec_helper")
2
-
3
- RSpec.describe 'Google Search' do
4
- include_context "GoogleAcceptanceTest"
5
-
6
- it "uses selenium driver", driver: :selenium_remote do
7
- visit('/')
8
-
9
- fill_in "q", :with => "Capybara"
10
-
11
- find("#gbqfbw button").click
12
-
13
- all(:xpath, "//li[@class='g']/h3/a").each { |a| puts a[:href] }
14
- end
15
- end