bret-watircraft 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. data/BUGS.txt +11 -0
  2. data/History.txt +209 -0
  3. data/Manifest.txt +103 -0
  4. data/README.rdoc +75 -0
  5. data/VERSION.yml +4 -0
  6. data/app_generators/watircraft/USAGE +11 -0
  7. data/app_generators/watircraft/templates/config.yml.erb +3 -0
  8. data/app_generators/watircraft/templates/feature_helper.rb +12 -0
  9. data/app_generators/watircraft/templates/initialize.rb.erb +10 -0
  10. data/app_generators/watircraft/templates/rakefile.rb +3 -0
  11. data/app_generators/watircraft/templates/script/console +5 -0
  12. data/app_generators/watircraft/templates/script/console.cmd +1 -0
  13. data/app_generators/watircraft/templates/site_start.rb.erb +12 -0
  14. data/app_generators/watircraft/templates/spec_helper.rb +9 -0
  15. data/app_generators/watircraft/templates/spec_initialize.rb +16 -0
  16. data/app_generators/watircraft/templates/world.rb +12 -0
  17. data/app_generators/watircraft/watircraft_generator.rb +108 -0
  18. data/bin/watircraft +17 -0
  19. data/lib/extensions/array.rb +10 -0
  20. data/lib/extensions/hash.rb +5 -0
  21. data/lib/extensions/object.rb +24 -0
  22. data/lib/extensions/string.rb +17 -0
  23. data/lib/extensions/watir.rb +41 -0
  24. data/lib/taza/browser.rb +45 -0
  25. data/lib/taza/entity.rb +34 -0
  26. data/lib/taza/fixture.rb +66 -0
  27. data/lib/taza/flow.rb +40 -0
  28. data/lib/taza/page.rb +259 -0
  29. data/lib/taza/settings.rb +80 -0
  30. data/lib/taza/site.rb +227 -0
  31. data/lib/taza/tasks.rb +30 -0
  32. data/lib/taza.rb +35 -0
  33. data/lib/watircraft/generator_helper.rb +27 -0
  34. data/lib/watircraft/table.rb +56 -0
  35. data/lib/watircraft/version.rb +3 -0
  36. data/lib/watircraft.rb +1 -0
  37. data/spec/array_spec.rb +16 -0
  38. data/spec/browser_spec.rb +68 -0
  39. data/spec/entity_spec.rb +9 -0
  40. data/spec/fake_table.rb +34 -0
  41. data/spec/fixture_spec.rb +34 -0
  42. data/spec/fixtures_spec.rb +21 -0
  43. data/spec/hash_spec.rb +12 -0
  44. data/spec/object_spec.rb +29 -0
  45. data/spec/page_generator_spec.rb +111 -0
  46. data/spec/page_spec.rb +342 -0
  47. data/spec/project_generator_spec.rb +103 -0
  48. data/spec/sandbox/config/config.yml +1 -0
  49. data/spec/sandbox/config/environments.yml +4 -0
  50. data/spec/sandbox/config/simpler.yml +1 -0
  51. data/spec/sandbox/config/simpler_site.yml +2 -0
  52. data/spec/sandbox/config.yml +2 -0
  53. data/spec/sandbox/fixtures/examples.yml +8 -0
  54. data/spec/sandbox/fixtures/users.yml +2 -0
  55. data/spec/sandbox/flows/batman.rb +5 -0
  56. data/spec/sandbox/flows/robin.rb +4 -0
  57. data/spec/sandbox/pages/foo/bar_page.rb +9 -0
  58. data/spec/sandbox/pages/foo/partials/partial_the_reckoning.rb +2 -0
  59. data/spec/settings_spec.rb +103 -0
  60. data/spec/site_generator_spec.rb +62 -0
  61. data/spec/site_spec.rb +249 -0
  62. data/spec/spec_generator_helper.rb +40 -0
  63. data/spec/spec_generator_spec.rb +24 -0
  64. data/spec/spec_helper.rb +21 -0
  65. data/spec/steps_generator_spec.rb +29 -0
  66. data/spec/string_spec.rb +17 -0
  67. data/spec/table_spec.rb +32 -0
  68. data/spec/taza_spec.rb +12 -0
  69. data/spec/watircraft_bin_spec.rb +14 -0
  70. data/watircraft.gemspec +53 -0
  71. data/watircraft_generators/page/USAGE +11 -0
  72. data/watircraft_generators/page/page_generator.rb +65 -0
  73. data/watircraft_generators/page/templates/page.rb.erb +8 -0
  74. data/watircraft_generators/site/site_generator.rb +51 -0
  75. data/watircraft_generators/site/templates/environments.yml.erb +4 -0
  76. data/watircraft_generators/site/templates/site.rb.erb +10 -0
  77. data/watircraft_generators/spec/USAGE +8 -0
  78. data/watircraft_generators/spec/spec_generator.rb +54 -0
  79. data/watircraft_generators/spec/templates/spec.rb.erb +17 -0
  80. data/watircraft_generators/steps/USAGE +13 -0
  81. data/watircraft_generators/steps/steps_generator.rb +62 -0
  82. data/watircraft_generators/steps/templates/steps.rb.erb +12 -0
  83. metadata +229 -0
@@ -0,0 +1,11 @@
1
+ Description:
2
+
3
+ A page class collects elements that grouped together. They might all
4
+ be on the same page. You can also use page classes for parts of a
5
+ page, or for items which appear on many pages.
6
+
7
+ Examples:
8
+
9
+ script\generate page "check out"
10
+ script\generate page header
11
+ script\generate page CheckOut
@@ -0,0 +1,65 @@
1
+ require 'rubygems'
2
+ require 'rubigen'
3
+ require 'watircraft/generator_helper'
4
+ require 'extensions/string'
5
+
6
+ class PageGenerator < RubiGen::Base
7
+ include WatirCraft::GeneratorHelper
8
+ default_options :author => nil
9
+ attr_reader :name, :site_name
10
+
11
+ def initialize(runtime_args, runtime_options = {})
12
+ super
13
+ usage unless args.size == 1
14
+ @name = args[0]
15
+ @site_name = configured_validated_site
16
+ extract_options
17
+ end
18
+
19
+ def site_module
20
+ @site_name.camelize
21
+ end
22
+
23
+ def page_class
24
+ "#{name.computerize.camelize}Page"
25
+ end
26
+
27
+ def page_file
28
+ "#{name.computerize}_page.rb"
29
+ end
30
+
31
+ def manifest
32
+ record do |m|
33
+ m.template "page.rb.erb", File.join('lib', 'pages', page_file)
34
+ end
35
+ end
36
+
37
+ protected
38
+
39
+ def banner
40
+ <<-EOS
41
+ Creates a page class.
42
+
43
+ USAGE: #{$0} #{spec.name} page_name
44
+
45
+ EOS
46
+ end
47
+
48
+ def add_options!(opts)
49
+ # opts.separator ''
50
+ # opts.separator 'Options:'
51
+ # For each option below, place the default
52
+ # at the top of the file next to "default_options"
53
+ # opts.on("-a", "--author=\"Your Name\"", String,
54
+ # "Some comment about this option",
55
+ # "Default: none") { |options[:author]| }
56
+ # opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
57
+ end
58
+
59
+ def extract_options
60
+ # for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
61
+ # Templates can access these value via the attr_reader-generated methods, but not the
62
+ # raw instance variable value.
63
+ # @author = options[:author]
64
+ end
65
+ end
@@ -0,0 +1,8 @@
1
+ require 'rubygems'
2
+ require 'taza/page'
3
+
4
+ module <%= site_module %>
5
+ class <%= page_class %> < ::Taza::Page
6
+
7
+ end
8
+ end
@@ -0,0 +1,51 @@
1
+ require 'rubygems'
2
+ require 'rubigen'
3
+ require 'extensions/string'
4
+
5
+ class SiteGenerator < RubiGen::Base
6
+ default_options :author => nil
7
+ attr_reader :name
8
+
9
+ def initialize(runtime_args, runtime_options = {})
10
+ super
11
+ usage if args.empty?
12
+ @name = args.shift.computerize
13
+ extract_options
14
+ end
15
+
16
+ def manifest
17
+ record do |m|
18
+ m.template "site.rb.erb", "lib/#{name}.rb", :collision => :skip
19
+ m.template "environments.yml.erb", "config/environments.yml", :collision => :skip
20
+ end
21
+ end
22
+
23
+ protected
24
+ def banner
25
+ <<-EOS
26
+ Creates the site for a watircraft project.
27
+
28
+ USAGE: #{$0} #{spec.name} name
29
+
30
+ EOS
31
+ end
32
+
33
+ def add_options!(opts)
34
+ # opts.separator ''
35
+ # opts.separator 'Options:'
36
+ # For each option below, place the default
37
+ # at the top of the file next to "default_options"
38
+ # opts.on("-a", "--author=\"Your Name\"", String,
39
+ # "Some comment about this option",
40
+ # "Default: none") { |options[:author]| }
41
+ # opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
42
+ end
43
+
44
+ def extract_options
45
+ # for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
46
+ # Templates can access these value via the attr_reader-generated methods, but not the
47
+ # raw instance variable value.
48
+ # @author = options[:author]
49
+ end
50
+
51
+ end
@@ -0,0 +1,4 @@
1
+ test:
2
+ url: http://your-url-here
3
+ staging:
4
+ url:
@@ -0,0 +1,10 @@
1
+ require 'rubygems'
2
+ require 'taza'
3
+
4
+ module <%= name.camelize %>
5
+ include ForwardInitialization
6
+
7
+ class <%= name.camelize %> < ::Taza::Site
8
+
9
+ end
10
+ end
@@ -0,0 +1,8 @@
1
+ Description:
2
+
3
+ A spec is one way to express a test. These tests are written in Ruby.
4
+
5
+ Examples:
6
+
7
+ script\generate spec login
8
+ script\generate spec "purchase large order"
@@ -0,0 +1,54 @@
1
+ require 'rubygems'
2
+ require 'rubigen'
3
+ require 'activesupport'
4
+ require 'watircraft/generator_helper'
5
+ require 'extensions/string'
6
+
7
+ class SpecGenerator < RubiGen::Base
8
+ include WatirCraft::GeneratorHelper
9
+ default_options :author => nil
10
+ attr_reader :name, :site_name
11
+
12
+ def initialize(runtime_args, runtime_options = {})
13
+ super
14
+ usage if args.empty?
15
+ @name = args.shift
16
+ @site_name = configured_validated_site
17
+ extract_options
18
+ end
19
+
20
+ def manifest
21
+ record do |m|
22
+ m.template "spec.rb.erb", File.join('test','specs',"#{name.computerize}_spec.rb")
23
+ end
24
+ end
25
+
26
+ protected
27
+ def banner
28
+ <<-EOS
29
+ Creates a spec.
30
+
31
+ USAGE: #{$0} #{spec.name} name
32
+
33
+ EOS
34
+ end
35
+
36
+ def add_options!(opts)
37
+ # opts.separator ''
38
+ # opts.separator 'Options:'
39
+ # For each option below, place the default
40
+ # at the top of the file next to "default_options"
41
+ # opts.on("-a", "--author=\"Your Name\"", String,
42
+ # "Some comment about this option",
43
+ # "Default: none") { |options[:author]| }
44
+ # opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
45
+ end
46
+
47
+ def extract_options
48
+ # for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
49
+ # Templates can access these value via the attr_reader-generated methods, but not the
50
+ # raw instance variable value.
51
+ # @author = options[:author]
52
+ end
53
+
54
+ end
@@ -0,0 +1,17 @@
1
+ $LOAD_PATH.unshift File.dirname(__FILE__) unless
2
+ $LOAD_PATH.include? File.dirname(__FILE__)
3
+ require 'spec_helper'
4
+
5
+ describe "<%= name.titlecase %>" do
6
+
7
+ # TODO: Change this string to describe your test
8
+ it "should be tested" do
9
+ # TODO: Add your test steps here. Remove "pending"
10
+ pending
11
+ end
12
+
13
+ # TODO: Add additional tests here. Each test should look like
14
+ # it "test description" do
15
+ # ... test steps ...
16
+ # end
17
+ end
@@ -0,0 +1,13 @@
1
+ Description:
2
+
3
+ Creates a file that you can use to store your defined steps.
4
+ These are the "Given", "When", "Then" commands that are used
5
+ with Cucumber features.
6
+
7
+ You can organize your step files as you wish. You can put them
8
+ all in one file or create multiple files for them.
9
+
10
+ Examples:
11
+
12
+ script\generate steps login
13
+ script\generate steps "policy use case"
@@ -0,0 +1,62 @@
1
+ require 'rubygems'
2
+ require 'rubigen'
3
+ require 'activesupport'
4
+ require 'watircraft/generator_helper'
5
+ require 'extensions/string'
6
+
7
+ class StepsGenerator < RubiGen::Base
8
+ include WatirCraft::GeneratorHelper
9
+ default_options :author => nil
10
+ attr_reader :name, :site_name
11
+
12
+ def initialize(runtime_args, runtime_options = {})
13
+ super
14
+ usage unless args.size == 1
15
+ @name = args[0]
16
+ @site_name = configured_validated_site
17
+ extract_options
18
+ end
19
+
20
+ def site_module
21
+ @site_name.camelize
22
+ end
23
+
24
+ def step_file
25
+ "#{name.computerize}_steps.rb"
26
+ end
27
+
28
+ def manifest
29
+ record do |m|
30
+ m.template "steps.rb.erb", File.join('lib', 'steps', step_file)
31
+ end
32
+ end
33
+
34
+ protected
35
+
36
+ def banner
37
+ <<-EOS
38
+ Creates a file for steps.
39
+
40
+ USAGE: #{$0} #{spec.name} steps_description
41
+
42
+ EOS
43
+ end
44
+
45
+ def add_options!(opts)
46
+ # opts.separator ''
47
+ # opts.separator 'Options:'
48
+ # For each option below, place the default
49
+ # at the top of the file next to "default_options"
50
+ # opts.on("-a", "--author=\"Your Name\"", String,
51
+ # "Some comment about this option",
52
+ # "Default: none") { |options[:author]| }
53
+ # opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
54
+ end
55
+
56
+ def extract_options
57
+ # for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
58
+ # Templates can access these value via the attr_reader-generated methods, but not the
59
+ # raw instance variable value.
60
+ # @author = options[:author]
61
+ end
62
+ end
@@ -0,0 +1,12 @@
1
+ require 'spec'
2
+ $LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/..')
3
+ require '<%= site_name %>'
4
+
5
+ # Given "" do
6
+ # end
7
+
8
+ # When "" do
9
+ # end
10
+
11
+ # Then "" do
12
+ # end
metadata ADDED
@@ -0,0 +1,229 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bret-watircraft
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
5
+ platform: ruby
6
+ authors:
7
+ - Bret Pettichord
8
+ - Jim Matthews
9
+ - Charley Baker
10
+ - Adam Anderson
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+
15
+ date: 2009-02-24 00:00:00 -08:00
16
+ default_executable: watircraft
17
+ dependencies:
18
+ - !ruby/object:Gem::Dependency
19
+ name: watir
20
+ type: :runtime
21
+ version_requirement:
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.6.2
27
+ version:
28
+ - !ruby/object:Gem::Dependency
29
+ name: taglob
30
+ type: :runtime
31
+ version_requirement:
32
+ version_requirements: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 1.1.1
37
+ version:
38
+ - !ruby/object:Gem::Dependency
39
+ name: rake
40
+ type: :runtime
41
+ version_requirement:
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 0.8.3
47
+ version:
48
+ - !ruby/object:Gem::Dependency
49
+ name: mocha
50
+ type: :runtime
51
+ version_requirement:
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 0.9.3
57
+ version:
58
+ - !ruby/object:Gem::Dependency
59
+ name: rubigen
60
+ type: :runtime
61
+ version_requirement:
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 1.4.0
67
+ version:
68
+ - !ruby/object:Gem::Dependency
69
+ name: rspec
70
+ type: :runtime
71
+ version_requirement:
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "="
75
+ - !ruby/object:Gem::Version
76
+ version: 1.1.12
77
+ version:
78
+ - !ruby/object:Gem::Dependency
79
+ name: cucumber
80
+ type: :runtime
81
+ version_requirement:
82
+ version_requirements: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - "="
85
+ - !ruby/object:Gem::Version
86
+ version: 0.1.16
87
+ version:
88
+ description: WatirCraft is a framework for web testing.
89
+ email: bret@pettichord.com
90
+ executables:
91
+ - watircraft
92
+ extensions: []
93
+
94
+ extra_rdoc_files:
95
+ - History.txt
96
+ - README.rdoc
97
+ files:
98
+ - BUGS.txt
99
+ - History.txt
100
+ - Manifest.txt
101
+ - README.rdoc
102
+ - VERSION.yml
103
+ - watircraft.gemspec
104
+ - bin/watircraft
105
+ - lib/extensions
106
+ - lib/extensions/array.rb
107
+ - lib/extensions/hash.rb
108
+ - lib/extensions/object.rb
109
+ - lib/extensions/string.rb
110
+ - lib/extensions/watir.rb
111
+ - lib/taza
112
+ - lib/taza/browser.rb
113
+ - lib/taza/entity.rb
114
+ - lib/taza/fixture.rb
115
+ - lib/taza/flow.rb
116
+ - lib/taza/page.rb
117
+ - lib/taza/settings.rb
118
+ - lib/taza/site.rb
119
+ - lib/taza/tasks.rb
120
+ - lib/taza.rb
121
+ - lib/watircraft
122
+ - lib/watircraft/generator_helper.rb
123
+ - lib/watircraft/table.rb
124
+ - lib/watircraft/version.rb
125
+ - lib/watircraft.rb
126
+ - spec/array_spec.rb
127
+ - spec/browser_spec.rb
128
+ - spec/entity_spec.rb
129
+ - spec/fake_table.rb
130
+ - spec/fixtures_spec.rb
131
+ - spec/fixture_spec.rb
132
+ - spec/hash_spec.rb
133
+ - spec/object_spec.rb
134
+ - spec/page_generator_spec.rb
135
+ - spec/page_spec.rb
136
+ - spec/project_generator_spec.rb
137
+ - spec/sandbox
138
+ - spec/sandbox/config
139
+ - spec/sandbox/config/config.yml
140
+ - spec/sandbox/config/environments.yml
141
+ - spec/sandbox/config/simpler.yml
142
+ - spec/sandbox/config/simpler_site.yml
143
+ - spec/sandbox/config.yml
144
+ - spec/sandbox/fixtures
145
+ - spec/sandbox/fixtures/examples.yml
146
+ - spec/sandbox/fixtures/users.yml
147
+ - spec/sandbox/flows
148
+ - spec/sandbox/flows/batman.rb
149
+ - spec/sandbox/flows/robin.rb
150
+ - spec/sandbox/pages
151
+ - spec/sandbox/pages/foo
152
+ - spec/sandbox/pages/foo/bar_page.rb
153
+ - spec/sandbox/pages/foo/partials
154
+ - spec/sandbox/pages/foo/partials/partial_the_reckoning.rb
155
+ - spec/settings_spec.rb
156
+ - spec/site_generator_spec.rb
157
+ - spec/site_spec.rb
158
+ - spec/spec_generator_helper.rb
159
+ - spec/spec_generator_spec.rb
160
+ - spec/spec_helper.rb
161
+ - spec/steps_generator_spec.rb
162
+ - spec/string_spec.rb
163
+ - spec/table_spec.rb
164
+ - spec/taza_spec.rb
165
+ - spec/watircraft_bin_spec.rb
166
+ - app_generators/watircraft
167
+ - app_generators/watircraft/templates
168
+ - app_generators/watircraft/templates/config.yml.erb
169
+ - app_generators/watircraft/templates/feature_helper.rb
170
+ - app_generators/watircraft/templates/initialize.rb.erb
171
+ - app_generators/watircraft/templates/rakefile.rb
172
+ - app_generators/watircraft/templates/script
173
+ - app_generators/watircraft/templates/script/console
174
+ - app_generators/watircraft/templates/script/console.cmd
175
+ - app_generators/watircraft/templates/site_start.rb.erb
176
+ - app_generators/watircraft/templates/spec_helper.rb
177
+ - app_generators/watircraft/templates/spec_initialize.rb
178
+ - app_generators/watircraft/templates/world.rb
179
+ - app_generators/watircraft/USAGE
180
+ - app_generators/watircraft/watircraft_generator.rb
181
+ - watircraft_generators/page
182
+ - watircraft_generators/page/page_generator.rb
183
+ - watircraft_generators/page/templates
184
+ - watircraft_generators/page/templates/page.rb.erb
185
+ - watircraft_generators/page/USAGE
186
+ - watircraft_generators/site
187
+ - watircraft_generators/site/site_generator.rb
188
+ - watircraft_generators/site/templates
189
+ - watircraft_generators/site/templates/environments.yml.erb
190
+ - watircraft_generators/site/templates/site.rb.erb
191
+ - watircraft_generators/spec
192
+ - watircraft_generators/spec/spec_generator.rb
193
+ - watircraft_generators/spec/templates
194
+ - watircraft_generators/spec/templates/spec.rb.erb
195
+ - watircraft_generators/spec/USAGE
196
+ - watircraft_generators/steps
197
+ - watircraft_generators/steps/steps_generator.rb
198
+ - watircraft_generators/steps/templates
199
+ - watircraft_generators/steps/templates/steps.rb.erb
200
+ - watircraft_generators/steps/USAGE
201
+ has_rdoc: true
202
+ homepage:
203
+ post_install_message:
204
+ rdoc_options:
205
+ - --main
206
+ - README.rdoc
207
+ require_paths:
208
+ - lib
209
+ required_ruby_version: !ruby/object:Gem::Requirement
210
+ requirements:
211
+ - - ">="
212
+ - !ruby/object:Gem::Version
213
+ version: "0"
214
+ version:
215
+ required_rubygems_version: !ruby/object:Gem::Requirement
216
+ requirements:
217
+ - - ">="
218
+ - !ruby/object:Gem::Version
219
+ version: "0"
220
+ version:
221
+ requirements: []
222
+
223
+ rubyforge_project: watir
224
+ rubygems_version: 1.2.0
225
+ signing_key:
226
+ specification_version: 2
227
+ summary: WatirCraft is a framework for web testing.
228
+ test_files: []
229
+