cukesparse 1.0.0 → 1.0.1

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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OGEyMTU2NjMwMDQ3NjVkNzc1NDMwZmU3NWZlMWY4ZjE0MDRjMGJjOA==
4
+ ZThkM2M0NzRmZTk1YWZmN2IxYjMxOTJlZDdjOWYzYjhiMzNkN2IzOA==
5
5
  data.tar.gz: !binary |-
6
- NjcyZDBiYTRlOWYwYWIyMjFmZDRhMWE2ZWM5YmZlYzZlYjNmNDhlMQ==
6
+ OWMxMWQ3YTVhNTFlNmUzNTAzMjA1NDJkYzNjNGI2ZDM2OWVjNDQ4Mg==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- NTE2ZDRlMGUzY2VmYmIxN2M2ODY5ZGFmZjk3YmExYWU3NzBiNmY0MzhiZjQ2
10
- YTAwNTMzZWJlOTJiYjc5ZTQxZDE5ODE1YzQxZTE5MWYxZTM1OTQ2ZjkzNjEy
11
- MTM5OGM0ZjRkNDlkOWQ4NGQxNDdhODA0NDZhYTdjYTA3NDg5YTU=
9
+ YWMwNjJiZWJmY2EyN2NkMTdmZDRmOTYwM2I5YmM2ODM2MTZjNjdjZWIzNjE4
10
+ YTg1NGU0NDBmZDE5YzBjM2UyMzJlOTVjNmMyYWQ2NjJkNjRkYzUwYzliMDUz
11
+ MzFmM2JkN2M3YTRiNGQ1ODQwY2UwMjgyMzg1MzgxYzg2YWNhODA=
12
12
  data.tar.gz: !binary |-
13
- ODYwOWYwZTA2ZmViYjQ3OWQ1NWQzNjc3NWM5ZGZhY2I0ZmVkM2E4Y2I2NTY0
14
- MGQxYWY1YjQyYjQ1MzAzYzFjNDZmNThkY2NlZjljMDYwZDdiOGZmMTQ1NzQ5
15
- YzE1YzRmNDY0N2RhM2U3YTQ3OGU4ZTA0MGE1MjU2MDI1OGI0YTM=
13
+ NjM3ZTA3YTUzYWUwMTE1MjhhY2I1NTVlMTYwNWE3NjY0MzA2Njc1YTU2MzEz
14
+ NTZhMGMyMDJmYzBkYTE5NTM1YTQ0MTE0ZjRiNzFlZDVhOTllNjhiZTE5NjYz
15
+ ZmE2YTRkMjk4ZTVlYjkxMGM0OTllMWMxYWM3NTQ5MDJhZmFjYjA=
@@ -4,168 +4,168 @@ require 'colored'
4
4
 
5
5
  class Cukesparse
6
6
 
7
- attr_reader :parameters, :args
8
- attr_accessor :config
9
-
10
- def initialize
11
- @config = load_config('config/tasks.yml')
12
- @args = ARGV
13
- @parameters = {}
14
- @task = {}
15
- @command = []
16
- end
17
-
18
- # Parses the options passed via command line
19
- def parse_options
20
- begin
21
- cli @args,
22
- # Cucumber options
23
- '-t' => lambda{ |t| add_multiple(:tags, t) },
24
- '-n --name' => lambda{ |n| @parameters[:name] = "--name #{n}" },
25
- '-f --format' => ->(f){ @parameters[:format] = "--format #{f}" },
26
- '-d --dry-run' => ->{ @parameters[:dry_run] = "--dry-run" },
27
- '-v --verbose' => ->{ @parameters[:verbose] = "--verbose" },
28
- '-s --strict' => ->{ @parameters[:strict] = "--strict" },
29
- '-g --guess' => ->{ @parameters[:guess] = "--guess" },
30
- '-x --expand' => ->{ @parameters[:expand] = "--expand" },
31
-
32
- # All options below have been added for custom project but can be used for example
33
- # Global options
34
- '-e --environment' => ->(e){ @parameters[:environment] = "ENVIRONMENT=#{e}" },
35
- '-l --loglevel' => ->(l){ @parameters[:log_level] = "LOG_LEVEL=#{l}" },
36
- '-c --controller' => ->(c){ @parameters[:controller] = "CONTROLLER=#{c}" },
37
- '-h --headless' => ->{ @parameters[:headless] = "HEADLESS=TRUE" },
38
-
39
- # Database options
40
- '--cleanup' => ->{ @parameters[:cleanup] = "CLEANUP=TRUE" },
41
- '--no-cleanup' => ->{ @parameters[:cleanup] = "CLEANUP=FALSE" },
42
- '--database' => ->{ @parameters[:database] = "DATABASE=TRUE" },
43
- '--jenkins' => ->{ @parameters[:jenkins] = "JENKINS=TRUE" },
44
-
45
- # Retry options
46
- '--retries' => ->(r){ @parameters[:retries] = "RETRIES=#{r}" },
47
- '--timeout' => ->(t){ @parameters[:timeout] = "TIMEOUT=#{t}" },
48
-
49
- # Driver Options
50
- '--screen' => ->(s){ split_parameters(s, :screen) },
51
- '--position' => ->(p){ split_parameters(p, :position) },
52
- '--screenwidth' => ->(w){ @parameters[:screen_width] = "SCREENWIDTH=#{w}" },
53
- '--screenheight' => ->(h){ @parameters[:screen_height] = "SCREENHEIGHT=#{h}" },
54
- '--xposition' => ->(x){ @parameters[:xposition] = "XPOSITION=#{x}" },
55
- '--yposition' => ->(y){ @parameters[:yposition] = "YPOSITION=#{y}" },
56
- '-H --highlight' => ->{ @parameters[:highlight] = "HIGHLIGHT=TRUE" },
57
-
58
- # Debug
59
- '--debug' => ->{ @parameters[:debug] = "DEBUG=TRUE" }
60
- rescue
61
- abort 'Error processing passed CLI arguments!'.red.underline
62
- else
63
- self
64
- end
65
- end
66
-
67
- # Builds the command line string
68
- def build_command
69
- check_for_task
70
- check_for_parameters
71
-
72
- unless @task.empty? && @parameters.empty?
73
- @command.push 'bundle exec cucumber'
74
- @command.push '--require features/'
75
- @command.push @task['feature_order'].join(' ')
76
- @parameters.each { |k,v| @command.push(v) }
77
- @command.push @task['defaults'].join(' ')
78
- end
79
-
80
- if @parameters.has_key? :debug
81
- debug
82
- else
83
- system @command.join(' ')
84
- end
85
- end
86
-
87
- def debug
88
- puts 'DEBUG: Outputting ARGV passed'.yellow
89
- puts @args.inspect
90
- puts 'DEBUG: Outputting parameters created'.yellow
91
- puts @parameters.inspect
92
- puts 'DEBUG: Outputting command line created'.yellow
93
- puts @command.join(' ')
94
- end
95
-
96
- # Loads the config file
97
- #
98
- # @param [String] file the location of tasks.yml
99
- def load_config(file)
100
- begin
101
- return YAML.load_file(file)
102
- rescue Psych::SyntaxError
103
- abort 'Your tasks.yml did not parse as expected!'.red.underline
104
- rescue Exception
105
- abort 'Your tasks.yml file is missing!'.red.underline
106
- end
107
- end
108
-
109
- # Checks for task in arguments
110
- def check_for_task
111
- @task = @args & @config.keys
112
- if @task.empty?
113
- abort 'ERROR: No task was passed to cukesparse!'.red.underline
114
- elsif @task.length > 1
115
- abort 'ERROR: Multiple tasks have been passed!'.red.underline
116
- else
117
- @task = @config[@task[0]]
118
- end
119
- end
120
-
121
- # Checks parameters and returns boolean
122
- def check_for_parameters
123
- unless @parameters.any?
124
- puts 'WARN: No parameters passed to cukesparse'.yellow
125
- end
126
-
127
- set_runtime_defaults
128
- end
129
-
130
- # Updates parameters based on config runtime defaults
131
- def set_runtime_defaults
132
- if @task.has_key?('runtime_defaults')
133
- @task['runtime_defaults'].each do |key, value|
134
- unless @parameters.has_key? key.to_sym
135
- @parameters[key.to_sym] = key.upcase + '=' + value.to_s
136
- end
137
- end
138
- else
139
- puts 'WARN: The task has no runtime defaults!'.yellow
140
- end
141
- end
142
-
143
- # Add multiple options to key
144
- #
145
- # @param [Symbol] key the key to store in options
146
- # @param [String] the arguments passed in for key
147
- def add_multiple(key, args)
148
- (@parameters[key] ||= []).push('--' + key.to_s + ' ' + args)
149
- end
150
-
151
- # Splits parameters passed
152
- #
153
- # @param [String] parameters the parameters passed
154
- # @param [Symbol] sym the symbol passed
155
- def split_parameters(parameters, sym)
156
- parameters = parameters.split(',')
157
- if parameters.length == 1
158
- abort "ERROR: You have not passed enough parameters in the #{sym.to_s} command line argument!".red.underline
159
- elsif parameters.length > 2
160
- abort "ERROR: You have passed to many parameters in the #{sym.to_s} command line argument!".red.underline
161
- end
162
-
163
- case sym
164
- when :screen
165
- @parameters[sym] = "SCREENWIDTH=#{parameters[0]} SCREENHEIGHT=#{parameters[1]}"
166
- when :position
167
- @parameters[sym] = "XPOSITION=#{parameters[0]} YPOSITION=#{parameters[1]}"
168
- end
169
- end
170
-
7
+ attr_reader :parameters, :args
8
+ attr_accessor :config
9
+
10
+ def initialize
11
+ @config = load_config('config/tasks.yml')
12
+ @args = ARGV
13
+ @parameters = {}
14
+ @tasks = {}
15
+ @command = []
16
+ end
17
+
18
+ # Parses the options passed via command line
19
+ def parse_options
20
+ begin
21
+ cli @args,
22
+ # Cucumber options
23
+ '-t' => lambda{ |t| add_multiple(:tags, t) },
24
+ '-n --name' => lambda{ |n| @parameters[:name] = "--name #{n}" },
25
+ '-f --format' => ->(f){ @parameters[:format] = "--format #{f}" },
26
+ '-d --dry-run' => ->{ @parameters[:dry_run] = "--dry-run" },
27
+ '-v --verbose' => ->{ @parameters[:verbose] = "--verbose" },
28
+ '-s --strict' => ->{ @parameters[:strict] = "--strict" },
29
+ '-g --guess' => ->{ @parameters[:guess] = "--guess" },
30
+ '-x --expand' => ->{ @parameters[:expand] = "--expand" },
31
+
32
+ # All options below have been added for custom project but can be used for example
33
+ # Global options
34
+ '-e --environment' => ->(e){ @parameters[:environment] = "ENVIRONMENT=#{e}" },
35
+ '-l --loglevel' => ->(l){ @parameters[:log_level] = "LOG_LEVEL=#{l}" },
36
+ '-c --controller' => ->(c){ @parameters[:controller] = "CONTROLLER=#{c}" },
37
+ '-h --headless' => ->{ @parameters[:headless] = "HEADLESS=TRUE" },
38
+
39
+ # Database options
40
+ '--cleanup' => ->{ @parameters[:cleanup] = "CLEANUP=TRUE" },
41
+ '--no-cleanup' => ->{ @parameters[:cleanup] = "CLEANUP=FALSE" },
42
+ '--database' => ->{ @parameters[:database] = "DATABASE=TRUE" },
43
+ '--jenkins' => ->{ @parameters[:jenkins] = "JENKINS=TRUE" },
44
+
45
+ # Retry options
46
+ '--retries' => ->(r){ @parameters[:retries] = "RETRIES=#{r}" },
47
+ '--timeout' => ->(t){ @parameters[:timeout] = "TIMEOUT=#{t}" },
48
+
49
+ # Driver Options
50
+ '--screen' => ->(s){ split_parameters(s, :screen) },
51
+ '--position' => ->(p){ split_parameters(p, :position) },
52
+ '--screenwidth' => ->(w){ @parameters[:screen_width] = "SCREENWIDTH=#{w}" },
53
+ '--screenheight' => ->(h){ @parameters[:screen_height] = "SCREENHEIGHT=#{h}" },
54
+ '--xposition' => ->(x){ @parameters[:xposition] = "XPOSITION=#{x}" },
55
+ '--yposition' => ->(y){ @parameters[:yposition] = "YPOSITION=#{y}" },
56
+ '-H --highlight' => ->{ @parameters[:highlight] = "HIGHLIGHT=TRUE" },
57
+
58
+ # Debug
59
+ '--debug' => ->{ @parameters[:debug] = "DEBUG=TRUE" }
60
+ rescue
61
+ abort 'Error processing passed CLI arguments!'.red.underline
62
+ else
63
+ self
64
+ end
65
+ end
66
+
67
+ # Builds the command line string
68
+ def build_command
69
+ check_for_task
70
+ check_for_parameters
71
+
72
+ unless @task.empty? && @parameters.empty?
73
+ @command.push 'bundle exec cucumber'
74
+ @command.push '--require features/'
75
+ @command.push @task['feature_order'].join(' ')
76
+ @parameters.each { |k,v| @command.push(v) }
77
+ @command.push @task['defaults'].join(' ')
78
+ end
79
+
80
+ if @parameters.has_key? :debug
81
+ debug
82
+ else
83
+ system @command.join(' ')
84
+ end
85
+ end
86
+
87
+ # Outputs the debug information
88
+ def debug
89
+ puts 'DEBUG: Outputting ARGV passed'.yellow
90
+ puts @args.inspect
91
+ puts 'DEBUG: Outputting parameters created'.yellow
92
+ puts @parameters.inspect
93
+ puts 'DEBUG: Outputting command line created'.yellow
94
+ puts @command.join(' ')
95
+ end
96
+
97
+ # Loads the config file
98
+ #
99
+ # @param [String] file the location of tasks.yml
100
+ def load_config(file)
101
+ begin
102
+ return YAML.load_file(file)
103
+ rescue Psych::SyntaxError
104
+ abort 'Your tasks.yml did not parse as expected!'.red.underline
105
+ rescue Exception
106
+ abort 'Your tasks.yml file is missing!'.red.underline
107
+ end
108
+ end
109
+
110
+ # Checks for task in arguments
111
+ def check_for_task
112
+ @task = @args & @config.keys
113
+ if @task.empty?
114
+ abort 'ERROR: No task was passed to cukesparse!'.red.underline
115
+ elsif @task.length > 1
116
+ abort 'ERROR: Multiple tasks have been passed!'.red.underline
117
+ else
118
+ @task = @config[@task[0]]
119
+ end
120
+ end
121
+
122
+ # Checks parameters and returns boolean
123
+ def check_for_parameters
124
+ unless @parameters.any?
125
+ puts 'WARN: No parameters passed to cukesparse'.yellow
126
+ end
127
+
128
+ set_runtime_defaults
129
+ end
130
+
131
+ # Updates parameters based on config runtime defaults
132
+ def set_runtime_defaults
133
+ if @task.has_key?('runtime_defaults')
134
+ @task['runtime_defaults'].each do |key, value|
135
+ unless @parameters.has_key? key.to_sym
136
+ @parameters[key.to_sym] = key.upcase + '=' + value.to_s
137
+ end
138
+ end
139
+ else
140
+ puts 'WARN: The task has no runtime defaults!'.yellow
141
+ end
142
+ end
143
+
144
+ # Add multiple options to key
145
+ #
146
+ # @param [Symbol] key the key to store in options
147
+ # @param [String] the arguments passed in for key
148
+ def add_multiple(key, args)
149
+ (@parameters[key] ||= []).push('--' + key.to_s + ' ' + args)
150
+ end
151
+
152
+ # Splits parameters passed
153
+ #
154
+ # @param [String] parameters the parameters passed
155
+ # @param [Symbol] sym the symbol passed
156
+ def split_parameters(parameters, sym)
157
+ parameters = parameters.split(',')
158
+ if parameters.length == 1
159
+ abort "ERROR: You have not passed enough parameters in the #{sym.to_s} command line argument!".red.underline
160
+ elsif parameters.length > 2
161
+ abort "ERROR: You have passed to many parameters in the #{sym.to_s} command line argument!".red.underline
162
+ end
163
+
164
+ case sym
165
+ when :screen
166
+ @parameters[sym] = "SCREENWIDTH=#{parameters[0]} SCREENHEIGHT=#{parameters[1]}"
167
+ when :position
168
+ @parameters[sym] = "XPOSITION=#{parameters[0]} YPOSITION=#{parameters[1]}"
169
+ end
170
+ end
171
171
  end
@@ -0,0 +1,701 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+
4
+ require 'cukesparse'
5
+ require 'colored'
6
+ require 'rspec'
7
+
8
+ describe "cukesparse" do
9
+ # Object
10
+ context "when new" do
11
+ before :all do
12
+ # Clear arguments as rspec passes in script path
13
+ ARGV = []
14
+ @cukesparse = Cukesparse.new
15
+ end
16
+
17
+ it "should be an instance of cukesparse" do
18
+ @cukesparse.should be_an_instance_of Cukesparse
19
+ end
20
+
21
+ it "returns true for empty opts parameter" do
22
+ @cukesparse.parameters.should be_empty
23
+ end
24
+
25
+ it "returns true for empty args parameter" do
26
+ @cukesparse.args.should be_empty
27
+ end
28
+ end
29
+
30
+ # Parameters
31
+ context "when passed the -t parameter" do
32
+ before :all do
33
+ # Clear arguments as rspec passes in script path
34
+ ARGV = ['test_task', '-t', 'test']
35
+ @cukesparse = Cukesparse.new
36
+ @cukesparse.parse_options
37
+ end
38
+
39
+ it "should have a parameter of tags" do
40
+ @cukesparse.parameters.should have_key :tags
41
+ end
42
+
43
+ it "should have a tags parameter value of --tags test" do
44
+ @cukesparse.parameters[:tags].should eql ['--tags test']
45
+ end
46
+ end
47
+
48
+ context "when passed the -n parameter" do
49
+ before :all do
50
+ # Clear arguments as rspec passes in script path
51
+ ARGV = ['test_task', '-n', 'name_test']
52
+ @cukesparse = Cukesparse.new
53
+ @cukesparse.parse_options
54
+ end
55
+
56
+ it "should have a parameter of name" do
57
+ @cukesparse.parameters.should have_key :name
58
+ end
59
+
60
+ it "should have a name parameter value of test" do
61
+ @cukesparse.parameters[:name].should eql '--name name_test'
62
+ end
63
+ end
64
+
65
+ context "when passed the -name parameter" do
66
+ before :all do
67
+ # Clear arguments as rspec passes in script path
68
+ ARGV = ['test_task', '--name', 'name_test']
69
+ @cukesparse = Cukesparse.new
70
+ @cukesparse.parse_options
71
+ end
72
+
73
+ it "should have a parameter of name" do
74
+ @cukesparse.parameters.should have_key :name
75
+ end
76
+
77
+ it "should have a name parameter value of test" do
78
+ @cukesparse.parameters[:name].should eql '--name name_test'
79
+ end
80
+ end
81
+
82
+ context "when passed the -f parameter" do
83
+ before :all do
84
+ # Clear arguments as rspec passes in script path
85
+ ARGV = ['test_task', '-f', 'pretty']
86
+ @cukesparse = Cukesparse.new
87
+ @cukesparse.parse_options
88
+ end
89
+
90
+ it "should have a parameter of format" do
91
+ @cukesparse.parameters.should have_key :format
92
+ end
93
+
94
+ it "should have a tags parameter value of test" do
95
+ @cukesparse.parameters[:format].should eql '--format pretty'
96
+ end
97
+ end
98
+
99
+ context "when passed the --format parameter" do
100
+ before :all do
101
+ # Clear arguments as rspec passes in script path
102
+ ARGV = ['test_task', '--format', 'pretty']
103
+ @cukesparse = Cukesparse.new
104
+ @cukesparse.parse_options
105
+ end
106
+
107
+ it "should have a parameter of format" do
108
+ @cukesparse.parameters.should have_key :format
109
+ end
110
+
111
+ it "should have a tags parameter value of test" do
112
+ @cukesparse.parameters[:format].should eql '--format pretty'
113
+ end
114
+ end
115
+
116
+ context "when passed the -d parameter" do
117
+ before :all do
118
+ # Clear arguments as rspec passes in script path
119
+ ARGV = ['test_task', '-d']
120
+ @cukesparse = Cukesparse.new
121
+ @cukesparse.parse_options
122
+ end
123
+
124
+ it "should have a parameter of name" do
125
+ @cukesparse.parameters.should have_key :dry_run
126
+ end
127
+
128
+ it "should have a dry_run parameter value of --dry-run" do
129
+ @cukesparse.parameters[:dry_run].should eql '--dry-run'
130
+ end
131
+ end
132
+
133
+ context "when passed the --dry-run parameter" do
134
+ before :all do
135
+ # Clear arguments as rspec passes in script path
136
+ ARGV = ['test_task', '--dry-run']
137
+ @cukesparse = Cukesparse.new
138
+ @cukesparse.parse_options
139
+ end
140
+
141
+ it "should have a parameter of dry_run" do
142
+ @cukesparse.parameters.should have_key :dry_run
143
+ end
144
+
145
+ it "should have a dry_run parameter value of --dry-run" do
146
+ @cukesparse.parameters[:dry_run].should eql '--dry-run'
147
+ end
148
+ end
149
+
150
+ context "when passed the -v parameter" do
151
+ before :all do
152
+ # Clear arguments as rspec passes in script path
153
+ ARGV = ['test_task', '-v']
154
+ @cukesparse = Cukesparse.new
155
+ @cukesparse.parse_options
156
+ end
157
+
158
+ it "should have a parameter of verbose" do
159
+ @cukesparse.parameters.should have_key :verbose
160
+ end
161
+
162
+ it "should have a verbose parameter value of --verbose" do
163
+ @cukesparse.parameters[:verbose].should eql '--verbose'
164
+ end
165
+ end
166
+
167
+ context "when passed the --verbose parameter" do
168
+ before :all do
169
+ # Clear arguments as rspec passes in script path
170
+ ARGV = ['test_task', '--verbose']
171
+ @cukesparse = Cukesparse.new
172
+ @cukesparse.parse_options
173
+ end
174
+
175
+ it "should have a parameter of verbose" do
176
+ @cukesparse.parameters.should have_key :verbose
177
+ end
178
+
179
+ it "should have a verbose parameter value of --verbose" do
180
+ @cukesparse.parameters[:verbose].should eql '--verbose'
181
+ end
182
+ end
183
+
184
+ context "when passed the -s parameter" do
185
+ before :all do
186
+ # Clear arguments as rspec passes in script path
187
+ ARGV = ['test_task', '-s']
188
+ @cukesparse = Cukesparse.new
189
+ @cukesparse.parse_options
190
+ end
191
+
192
+ it "should have a parameter of strict" do
193
+ @cukesparse.parameters.should have_key :strict
194
+ end
195
+
196
+ it "should have a strict parameter value of --strict" do
197
+ @cukesparse.parameters[:strict].should eql '--strict'
198
+ end
199
+ end
200
+
201
+ context "when passed the --strict parameter" do
202
+ before :all do
203
+ # Clear arguments as rspec passes in script path
204
+ ARGV = ['test_task', '-s']
205
+ @cukesparse = Cukesparse.new
206
+ @cukesparse.parse_options
207
+ end
208
+
209
+ it "should have a parameter of --strict" do
210
+ @cukesparse.parameters.should have_key :strict
211
+ end
212
+
213
+ it "should have a strict parameter value of --strict" do
214
+ @cukesparse.parameters[:strict].should eql '--strict'
215
+ end
216
+ end
217
+
218
+ context "when passed the -g parameter" do
219
+ before :all do
220
+ # Clear arguments as rspec passes in script path
221
+ ARGV = ['test_task', '-g']
222
+ @cukesparse = Cukesparse.new
223
+ @cukesparse.parse_options
224
+ end
225
+
226
+ it "should have a parameter of --guess" do
227
+ @cukesparse.parameters.should have_key :guess
228
+ end
229
+
230
+ it "should have a strict parameter value of --guess" do
231
+ @cukesparse.parameters[:guess].should eql '--guess'
232
+ end
233
+ end
234
+
235
+ context "when passed the --guess parameter" do
236
+ before :all do
237
+ # Clear arguments as rspec passes in script path
238
+ ARGV = ['test_task', '--guess']
239
+ @cukesparse = Cukesparse.new
240
+ @cukesparse.parse_options
241
+ end
242
+
243
+ it "should have a parameter of --guess" do
244
+ @cukesparse.parameters.should have_key :guess
245
+ end
246
+
247
+ it "should have a strict parameter value of --guess" do
248
+ @cukesparse.parameters[:guess].should eql '--guess'
249
+ end
250
+ end
251
+
252
+ context "when passed the -x parameter" do
253
+ before :all do
254
+ # Clear arguments as rspec passes in script path
255
+ ARGV = ['test_task', '-x']
256
+ @cukesparse = Cukesparse.new
257
+ @cukesparse.parse_options
258
+ end
259
+
260
+ it "should have a parameter of --expand" do
261
+ @cukesparse.parameters.should have_key :expand
262
+ end
263
+
264
+ it "should have a strict parameter value of --expand" do
265
+ @cukesparse.parameters[:expand].should eql '--expand'
266
+ end
267
+ end
268
+
269
+ context "when passed the --expand parameter" do
270
+ before :all do
271
+ # Clear arguments as rspec passes in script path
272
+ ARGV = ['test_task', '--expand']
273
+ @cukesparse = Cukesparse.new
274
+ @cukesparse.parse_options
275
+ end
276
+
277
+ it "should have a parameter of --expand" do
278
+ @cukesparse.parameters.should have_key :expand
279
+ end
280
+
281
+ it "should have a strict parameter value of --expand" do
282
+ @cukesparse.parameters[:expand].should eql '--expand'
283
+ end
284
+ end
285
+
286
+ context "when passed the -e parameter" do
287
+ before :all do
288
+ # Clear arguments as rspec passes in script path
289
+ ARGV = ['test_task', '-e', 'test_environment']
290
+ @cukesparse = Cukesparse.new
291
+ @cukesparse.parse_options
292
+ end
293
+
294
+ it "should have a parameter of environment" do
295
+ @cukesparse.parameters.should have_key :environment
296
+ end
297
+
298
+ it "should have a environment parameter value of ENVIRONMENT=test_environment" do
299
+ @cukesparse.parameters[:environment].should eql 'ENVIRONMENT=test_environment'
300
+ end
301
+ end
302
+
303
+ context "when passed the --environment parameter" do
304
+ before :all do
305
+ # Clear arguments as rspec passes in script path
306
+ ARGV = ['test_task', '--environment', 'test_environment']
307
+ @cukesparse = Cukesparse.new
308
+ @cukesparse.parse_options
309
+ end
310
+
311
+ it "should have a parameter of environment" do
312
+ @cukesparse.parameters.should have_key :environment
313
+ end
314
+
315
+ it "should have a environment parameter value of ENVIRONMENT=test_environment" do
316
+ @cukesparse.parameters[:environment].should eql 'ENVIRONMENT=test_environment'
317
+ end
318
+ end
319
+
320
+ context "when passed the -l parameter" do
321
+ before :all do
322
+ # Clear arguments as rspec passes in script path
323
+ ARGV = ['test_task', '-l', 'debug']
324
+ @cukesparse = Cukesparse.new
325
+ @cukesparse.parse_options
326
+ end
327
+
328
+ it "should have a parameter of loglevel" do
329
+ @cukesparse.parameters.should have_key :log_level
330
+ end
331
+
332
+ it "should have a loglevel parameter value of LOG_LEVEL=debug" do
333
+ @cukesparse.parameters[:log_level].should eql 'LOG_LEVEL=debug'
334
+ end
335
+ end
336
+
337
+ context "when passed the --loglevel parameter" do
338
+ before :all do
339
+ # Clear arguments as rspec passes in script path
340
+ ARGV = ['test_task', '--loglevel', 'debug']
341
+ @cukesparse = Cukesparse.new
342
+ @cukesparse.parse_options
343
+ end
344
+
345
+ it "should have a parameter of loglevel" do
346
+ @cukesparse.parameters.should have_key :log_level
347
+ end
348
+
349
+ it "should have a loglevel parameter value of LOG_LEVEL=debug" do
350
+ @cukesparse.parameters[:log_level].should eql 'LOG_LEVEL=debug'
351
+ end
352
+ end
353
+
354
+ context "when passed the -c parameter" do
355
+ before :all do
356
+ # Clear arguments as rspec passes in script path
357
+ ARGV = ['test_task', '-c', 'browser']
358
+ @cukesparse = Cukesparse.new
359
+ @cukesparse.parse_options
360
+ end
361
+
362
+ it "should have a parameter of controller" do
363
+ @cukesparse.parameters.should have_key :controller
364
+ end
365
+
366
+ it "should have a controller parameter value of CONTROLLER=browser" do
367
+ @cukesparse.parameters[:controller].should eql 'CONTROLLER=browser'
368
+ end
369
+ end
370
+
371
+ context "when passed the --controller parameter" do
372
+ before :all do
373
+ # Clear arguments as rspec passes in script path
374
+ ARGV = ['test_task', '--controller', 'browser']
375
+ @cukesparse = Cukesparse.new
376
+ @cukesparse.parse_options
377
+ end
378
+
379
+ it "should have a parameter of controller" do
380
+ @cukesparse.parameters.should have_key :controller
381
+ end
382
+
383
+ it "should have a controller parameter value of CONTROLLER=browser" do
384
+ @cukesparse.parameters[:controller].should eql 'CONTROLLER=browser'
385
+ end
386
+ end
387
+
388
+ context "when passed the -h parameter" do
389
+ before :all do
390
+ # Clear arguments as rspec passes in script path
391
+ ARGV = ['test_task', '-h']
392
+ @cukesparse = Cukesparse.new
393
+ @cukesparse.parse_options
394
+ end
395
+
396
+ it "should have a parameter of headless" do
397
+ @cukesparse.parameters.should have_key :headless
398
+ end
399
+
400
+ it "should have a headless parameter value of HEADLESS=TRUE" do
401
+ @cukesparse.parameters[:headless].should eql 'HEADLESS=TRUE'
402
+ end
403
+ end
404
+
405
+ context "when passed the --headless parameter" do
406
+ before :all do
407
+ # Clear arguments as rspec passes in script path
408
+ ARGV = ['test_task', '--headless']
409
+ @cukesparse = Cukesparse.new
410
+ @cukesparse.parse_options
411
+ end
412
+
413
+ it "should have a parameter of headless" do
414
+ @cukesparse.parameters.should have_key :headless
415
+ end
416
+
417
+ it "should have a headless parameter value of HEADLESS=TRUE" do
418
+ @cukesparse.parameters[:headless].should eql 'HEADLESS=TRUE'
419
+ end
420
+ end
421
+
422
+ context "when passed the --cleanup parameter" do
423
+ before :all do
424
+ # Clear arguments as rspec passes in script path
425
+ ARGV = ['test_task', '--cleanup']
426
+ @cukesparse = Cukesparse.new
427
+ @cukesparse.parse_options
428
+ end
429
+
430
+ it "should have a parameter of cleanup" do
431
+ @cukesparse.parameters.should have_key :cleanup
432
+ end
433
+
434
+ it "should have a cleanup parameter value of CLEANUP=TRUE" do
435
+ @cukesparse.parameters[:cleanup].should eql 'CLEANUP=TRUE'
436
+ end
437
+ end
438
+
439
+ context "when passed the --no-cleanup parameter" do
440
+ before :all do
441
+ # Clear arguments as rspec passes in script path
442
+ ARGV = ['test_task', '--no-cleanup']
443
+ @cukesparse = Cukesparse.new
444
+ @cukesparse.parse_options
445
+ end
446
+
447
+ it "should have a parameter of cleanup" do
448
+ @cukesparse.parameters.should have_key :cleanup
449
+ end
450
+
451
+ it "should have a cleanup parameter value of CLEANUP=FALSE" do
452
+ @cukesparse.parameters[:cleanup].should eql 'CLEANUP=FALSE'
453
+ end
454
+ end
455
+
456
+ context "when passed the --database parameter" do
457
+ before :all do
458
+ # Clear arguments as rspec passes in script path
459
+ ARGV = ['test_task', '--database']
460
+ @cukesparse = Cukesparse.new
461
+ @cukesparse.parse_options
462
+ end
463
+
464
+ it "should have a parameter of database" do
465
+ @cukesparse.parameters.should have_key :database
466
+ end
467
+
468
+ it "should have a database parameter value of DATABASE=TRUE" do
469
+ @cukesparse.parameters[:database].should eql 'DATABASE=TRUE'
470
+ end
471
+ end
472
+
473
+ context "when passed the --jenkins parameter" do
474
+ before :all do
475
+ # Clear arguments as rspec passes in script path
476
+ ARGV = ['test_task', '--jenkins']
477
+ @cukesparse = Cukesparse.new
478
+ @cukesparse.parse_options
479
+ end
480
+
481
+ it "should have a parameter of jenkins" do
482
+ @cukesparse.parameters.should have_key :jenkins
483
+ end
484
+
485
+ it "should have a jenkins parameter value of JENKINS=TRUE" do
486
+ @cukesparse.parameters[:jenkins].should eql 'JENKINS=TRUE'
487
+ end
488
+ end
489
+
490
+ context "when passed the --retries parameter" do
491
+ before :all do
492
+ # Clear arguments as rspec passes in script path
493
+ ARGV = ['test_task', '--retries', '5']
494
+ @cukesparse = Cukesparse.new
495
+ @cukesparse.parse_options
496
+ end
497
+
498
+ it "should have a parameter of retries" do
499
+ @cukesparse.parameters.should have_key :retries
500
+ end
501
+
502
+ it "should have a retries parameter value of RETRIES=5" do
503
+ @cukesparse.parameters[:retries].should eql 'RETRIES=5'
504
+ end
505
+ end
506
+
507
+ context "when passed the --timeout parameter" do
508
+ before :all do
509
+ # Clear arguments as rspec passes in script path
510
+ ARGV = ['test_task', '--timeout', '10']
511
+ @cukesparse = Cukesparse.new
512
+ @cukesparse.parse_options
513
+ end
514
+
515
+ it "should have a parameter of timeout" do
516
+ @cukesparse.parameters.should have_key :timeout
517
+ end
518
+
519
+ it "should have a timeout parameter value of TIMEOUT=10" do
520
+ @cukesparse.parameters[:timeout].should eql 'TIMEOUT=10'
521
+ end
522
+ end
523
+
524
+ context "when passed the --screen parameter" do
525
+ before :all do
526
+ # Clear arguments as rspec passes in script path
527
+ ARGV = ['test_task', '--screen', '1280,1024']
528
+ @cukesparse = Cukesparse.new
529
+ @cukesparse.parse_options
530
+ end
531
+
532
+ it "should have a parameter of screen" do
533
+ @cukesparse.parameters.should have_key :screen
534
+ end
535
+
536
+ it "should have a screen parameter value of SCREENWIDTH=1280 SCREENHEIGHT=1024" do
537
+ @cukesparse.parameters[:screen].should eql 'SCREENWIDTH=1280 SCREENHEIGHT=1024'
538
+ end
539
+ end
540
+
541
+ context "when passed the --position parameter" do
542
+ before :all do
543
+ # Clear arguments as rspec passes in script path
544
+ ARGV = ['test_task', '--position', '0,0']
545
+ @cukesparse = Cukesparse.new
546
+ @cukesparse.parse_options
547
+ end
548
+
549
+ it "should have a parameter of position" do
550
+ @cukesparse.parameters.should have_key :position
551
+ end
552
+
553
+ it "should have a position parameter value of XPOSITION=0 YPOSITION=0" do
554
+ @cukesparse.parameters[:position].should eql 'XPOSITION=0 YPOSITION=0'
555
+ end
556
+ end
557
+
558
+ context "when passed the --screenwidth parameter" do
559
+ before :all do
560
+ # Clear arguments as rspec passes in script path
561
+ ARGV = ['test_task', '--screenwidth', '1280']
562
+ @cukesparse = Cukesparse.new
563
+ @cukesparse.parse_options
564
+ end
565
+
566
+ it "should have a parameter of screenwidth" do
567
+ @cukesparse.parameters.should have_key :screen_width
568
+ end
569
+
570
+ it "should have a screenwidth parameter value of SCREENWIDTH=1280" do
571
+ @cukesparse.parameters[:screen_width].should eql 'SCREENWIDTH=1280'
572
+ end
573
+ end
574
+
575
+ context "when passed the --screenheight parameter" do
576
+ before :all do
577
+ # Clear arguments as rspec passes in script path
578
+ ARGV = ['test_task', '--screenheight', '1024']
579
+ @cukesparse = Cukesparse.new
580
+ @cukesparse.parse_options
581
+ end
582
+
583
+ it "should have a parameter of screenheight" do
584
+ @cukesparse.parameters.should have_key :screen_height
585
+ end
586
+
587
+ it "should have a screenheight parameter value of SCREENHEIGHT=1024" do
588
+ @cukesparse.parameters[:screen_height].should eql 'SCREENHEIGHT=1024'
589
+ end
590
+ end
591
+
592
+ context "when passed the --xposition parameter" do
593
+ before :all do
594
+ # Clear arguments as rspec passes in script path
595
+ ARGV = ['test_task', '--xposition', '100']
596
+ @cukesparse = Cukesparse.new
597
+ @cukesparse.parse_options
598
+ end
599
+
600
+ it "should have a parameter of xposition" do
601
+ @cukesparse.parameters.should have_key :xposition
602
+ end
603
+
604
+ it "should have a xposition parameter value of XPOSITION=100" do
605
+ @cukesparse.parameters[:xposition].should eql 'XPOSITION=100'
606
+ end
607
+ end
608
+
609
+ context "when passed the --yposition parameter" do
610
+ before :all do
611
+ # Clear arguments as rspec passes in script path
612
+ ARGV = ['test_task', '--yposition', '100']
613
+ @cukesparse = Cukesparse.new
614
+ @cukesparse.parse_options
615
+ end
616
+
617
+ it "should have a parameter of yposition" do
618
+ @cukesparse.parameters.should have_key :yposition
619
+ end
620
+
621
+ it "should have a yposition parameter value of YPOSITION=100" do
622
+ @cukesparse.parameters[:yposition].should eql 'YPOSITION=100'
623
+ end
624
+ end
625
+
626
+ context "when passed the -H parameter" do
627
+ before :all do
628
+ # Clear arguments as rspec passes in script path
629
+ ARGV = ['test_task', '-H']
630
+ @cukesparse = Cukesparse.new
631
+ @cukesparse.parse_options
632
+ end
633
+
634
+ it "should have a parameter of highlight" do
635
+ @cukesparse.parameters.should have_key :highlight
636
+ end
637
+
638
+ it "should have a highlight parameter value of HIGHLIGHT=TRUE" do
639
+ @cukesparse.parameters[:highlight].should eql 'HIGHLIGHT=TRUE'
640
+ end
641
+ end
642
+
643
+ context "when passed the --highlight parameter" do
644
+ before :all do
645
+ # Clear arguments as rspec passes in script path
646
+ ARGV = ['test_task', '--highlight']
647
+ @cukesparse = Cukesparse.new
648
+ @cukesparse.parse_options
649
+ end
650
+
651
+ it "should have a parameter of highlight" do
652
+ @cukesparse.parameters.should have_key :highlight
653
+ end
654
+
655
+ it "should have a highlight parameter value of HIGHLIGHT=TRUE" do
656
+ @cukesparse.parameters[:highlight].should eql 'HIGHLIGHT=TRUE'
657
+ end
658
+ end
659
+
660
+ context "when passed the --debug parameter" do
661
+ before :all do
662
+ # Clear arguments as rspec passes in script path
663
+ ARGV = ['test_task', '--debug']
664
+ @cukesparse = Cukesparse.new
665
+ @cukesparse.parse_options
666
+ end
667
+
668
+ it "should have a parameter of debug" do
669
+ @cukesparse.parameters.should have_key :debug
670
+ end
671
+
672
+ it "should have a debug parameter value of DEBUG=TRUE" do
673
+ @cukesparse.parameters[:debug].should eql 'DEBUG=TRUE'
674
+ end
675
+ end
676
+
677
+ # Default Parameters
678
+ context "when running the test task runtime default vars should be set when no arguments passed" do
679
+ before :all do
680
+ # Clear arguments as rspec passes in script path
681
+ # Adding test tag to prevent raise
682
+ ARGV = ['test_task', '-t', 'test']
683
+ @cukesparse = Cukesparse.new
684
+ @cukesparse.parse_options
685
+ @cukesparse.check_for_task
686
+ @cukesparse.check_for_parameters
687
+ end
688
+
689
+ it "should have runtime default parameters" do
690
+ @cukesparse.parameters.should have_key :environment
691
+ @cukesparse.parameters.should have_key :log_level
692
+ @cukesparse.parameters.should have_key :format
693
+ end
694
+
695
+ it "should have the expected default runtime parameter values" do
696
+ @cukesparse.parameters[:environment].should eql 'ENVIRONMENT=release'
697
+ @cukesparse.parameters[:log_level].should eql 'LOG_LEVEL=debug'
698
+ @cukesparse.parameters[:format].should eql 'FORMAT=pretty'
699
+ end
700
+ end
701
+ end