bret-watircraft 0.4.0

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