bret-watircraft 0.4.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/BUGS.txt CHANGED
@@ -1,11 +1,9 @@
1
1
  Known Bugs
2
2
 
3
- * Support for FireWatir is incomplete (specifically: Page fields)
4
- * Page fields do not support Radio lists.
3
+ * Can't install on mac. (This used to work.)
4
+ * The name of the element underlying each field is not consistent. In pages,
5
+ it is called foo_field; in tables, foo_element. (Should probably be
6
+ foo_element in both places.)
7
+ * Page fields do not support Radio lists. Workaround: use elements.
5
8
  * Need to provide homepage for project.
6
-
7
- Reported Bugs which we can't reproduce
8
-
9
- * "Couldn't find 'site' generator" when running watircraft command.
10
- (using 0.3.1, neither taza nor watircraft-beta is also installed)
11
9
 
data/History.txt CHANGED
@@ -1,6 +1,11 @@
1
+ === 0.4.2 / 2009-03-24
2
+
3
+ * Fixed "can't find site generator" bug that occured when creating a new project.
4
+ * Page field and table fields now support Firefox.
5
+
1
6
  === 0.4.1 / 2009-02-24
2
7
 
3
- * Fix bug with script\console: no such file to load -- site_start
8
+ * Fixed bug with script\console: no such file to load -- site_start
4
9
 
5
10
  === 0.4.0 / 2009-02-23
6
11
 
@@ -60,7 +65,6 @@ Other Changes
60
65
  * Explicitly declare dependency on Watir 1.6.2 (or newer). Previously this
61
66
  was assumed.
62
67
 
63
-
64
68
  === 0.3.2 / 2009-02-04
65
69
 
66
70
  Another patch release. Like 0.3.1, no need to update if your project is
data/Manifest.txt CHANGED
@@ -56,7 +56,6 @@ spec/sandbox/pages/foo/bar_page.rb
56
56
  spec/sandbox/pages/foo/partials
57
57
  spec/sandbox/pages/foo/partials/partial_the_reckoning.rb
58
58
  spec/settings_spec.rb
59
- spec/site_generator_spec.rb
60
59
  spec/site_spec.rb
61
60
  spec/spec_generator_helper.rb
62
61
  spec/spec_generator_spec.rb
@@ -66,15 +65,18 @@ spec/string_spec.rb
66
65
  spec/table_spec.rb
67
66
  spec/taza_spec.rb
68
67
  spec/watircraft_bin_spec.rb
68
+ spec/watir_spec.rb
69
69
  app_generators/watircraft
70
70
  app_generators/watircraft/templates
71
71
  app_generators/watircraft/templates/config.yml.erb
72
+ app_generators/watircraft/templates/environments.yml.erb
72
73
  app_generators/watircraft/templates/feature_helper.rb
73
74
  app_generators/watircraft/templates/initialize.rb.erb
74
75
  app_generators/watircraft/templates/rakefile.rb
75
76
  app_generators/watircraft/templates/script
76
77
  app_generators/watircraft/templates/script/console
77
78
  app_generators/watircraft/templates/script/console.cmd
79
+ app_generators/watircraft/templates/site.rb.erb
78
80
  app_generators/watircraft/templates/site_start.rb.erb
79
81
  app_generators/watircraft/templates/spec_helper.rb
80
82
  app_generators/watircraft/templates/spec_initialize.rb
@@ -86,11 +88,6 @@ watircraft_generators/page/page_generator.rb
86
88
  watircraft_generators/page/templates
87
89
  watircraft_generators/page/templates/page.rb.erb
88
90
  watircraft_generators/page/USAGE
89
- watircraft_generators/site
90
- watircraft_generators/site/site_generator.rb
91
- watircraft_generators/site/templates
92
- watircraft_generators/site/templates/environments.yml.erb
93
- watircraft_generators/site/templates/site.rb.erb
94
91
  watircraft_generators/spec
95
92
  watircraft_generators/spec/spec_generator.rb
96
93
  watircraft_generators/spec/templates
data/README.rdoc CHANGED
@@ -7,11 +7,11 @@ It allows tests to be expressed as Rspec or Cucumber tests and provides
7
7
  a library structure to support maintainable testing. It gives you
8
8
  a place to put things.
9
9
 
10
- * http://testobsessed.com/2008/05/31/a-place-to-put-things/
10
+ * http://testobsessed.com/2008/05/31/a-place-to-put-things
11
11
 
12
12
  == FEATURES
13
13
 
14
- * Generate a directory structure for your test suite with one command.
14
+ * Generates a directory structure for your test suite with one command.
15
15
  * Provides page adapters you can customize for your application.
16
16
  * Configure application URL and browser type (IE, Firefox) in one location.
17
17
  * Framework automatically initializes browser for testing.
@@ -30,8 +30,8 @@ get the benefit.
30
30
 
31
31
  == INSTALL
32
32
 
33
- * gem update --system
34
- * gem install watircraft
33
+ gem update --system
34
+ gem install watircraft
35
35
 
36
36
  == EXAMPLE
37
37
 
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
- :patch: 1
3
- :major: 0
4
2
  :minor: 4
3
+ :patch: 2
4
+ :major: 0
@@ -1,10 +1,10 @@
1
1
  require 'rubygems'
2
2
  require 'taza'
3
3
 
4
- module <%= name.camelize %>
4
+ module <%= site.camelize %>
5
5
  include ForwardInitialization
6
6
 
7
- class <%= name.camelize %> < ::Taza::Site
7
+ class <%= site.camelize %> < ::Taza::Site
8
8
 
9
9
  end
10
10
  end
@@ -44,7 +44,7 @@ class WatircraftGenerator < RubiGen::Base
44
44
  m.file "spec_helper.rb", "test/specs/spec_helper.rb", :collision => :force
45
45
  m.file "feature_helper.rb", "test/features/feature_helper.rb", :collision => :force
46
46
 
47
- m.template "initialize.rb.erb", "lib/initialize.rb", :collision => :ask
47
+ m.template "initialize.rb.erb", "lib/initialize.rb", :collision => :skip # not sure what's right
48
48
  m.file "spec_initialize.rb", "lib/init/spec_initialize.rb", :collision => :force
49
49
  m.file "world.rb", "lib/steps/world.rb", :collision => :force
50
50
  m.template "site_start.rb.erb", "lib/init/site_start.rb", :collision => :force
@@ -53,7 +53,9 @@ class WatircraftGenerator < RubiGen::Base
53
53
 
54
54
  m.dependency "install_rubigen_scripts", [destination_root, 'watircraft'],
55
55
  :shebang => options[:shebang], :collision => :ask
56
- m.dependency "site", [@site], :destination => destination_root
56
+
57
+ m.template "site.rb.erb", "lib/#{@site}.rb", :collision => :skip
58
+ m.template "environments.yml.erb", "config/environments.yml", :collision => :skip
57
59
  end
58
60
  end
59
61
 
@@ -1,7 +1,9 @@
1
1
  # TODO: support radiogroup
2
2
  # TODO: migrate this code into Watir
3
- # TODO: also handle FireWatir classes
4
- module Watir
3
+
4
+ def Watir.add_display_value_methods_to mod
5
+ mod.module_eval <<-CLASS_END
6
+
5
7
  class TextField # includes Hidden
6
8
  def display_value
7
9
  value
@@ -34,8 +36,15 @@ module Watir
34
36
  text
35
37
  end
36
38
  end
39
+ class NonControlElement
40
+ def display_value
41
+ text
42
+ end
43
+ end
37
44
 
38
45
  class B < NonControlElement
39
46
  TAG = 'B'
40
47
  end
48
+
49
+ CLASS_END
41
50
  end
data/lib/taza/browser.rb CHANGED
@@ -1,45 +1,50 @@
1
- module Taza
2
- class Browser
3
-
4
- # Create a browser instance depending on configuration. Configuration should be read in via Taza::Settings.config.
5
- #
6
- # Example:
7
- # browser = Taza::Browser.create(Taza::Settings.config)
8
- #
9
- def self.create(params={})
10
- self.send("create_#{params[:driver]}".to_sym,params)
11
- end
12
-
13
- private
14
-
15
- def self.create_watir(params)
16
- require 'watir'
17
- if params[:browser] == :ie
18
- require 'watir/ie'
19
- require 'extensions/watir'
20
- end
21
- Watir::Browser.default = params[:browser].to_s
22
- Watir::Browser.new
23
- end
24
-
25
- def self.create_selenium(params)
26
- require 'selenium'
27
- Selenium::SeleniumDriver.new(params[:server_ip],params[:server_port],'*' + params[:browser].to_s,params[:timeout])
28
- end
29
-
30
- def self.create_fake(params)
31
- FakeBrowser.new
32
- end
33
-
34
- end
35
-
36
- class FakeBrowser
37
- def goto(*args)
38
- end
39
- def close
40
- end
41
-
42
- end
43
-
44
- end
45
-
1
+ module Taza
2
+ class Browser
3
+
4
+ # Create a browser instance depending on configuration. Configuration should be read in via Taza::Settings.config.
5
+ #
6
+ # Example:
7
+ # browser = Taza::Browser.create(Taza::Settings.config)
8
+ #
9
+ def self.create(params={})
10
+ self.send("create_#{params[:driver]}".to_sym,params)
11
+ end
12
+
13
+ private
14
+
15
+ def self.create_watir(params)
16
+ require 'watir'
17
+ require 'extensions/watir'
18
+ if params[:browser] == :ie
19
+ require 'watir/ie'
20
+ Watir.add_display_value_methods_to Watir
21
+ end
22
+ if params[:browser] == :firefox
23
+ require 'firewatir'
24
+ Watir.add_display_value_methods_to FireWatir
25
+ end
26
+ Watir::Browser.default = params[:browser].to_s
27
+ Watir::Browser.new
28
+ end
29
+
30
+ def self.create_selenium(params)
31
+ require 'selenium'
32
+ Selenium::SeleniumDriver.new(params[:server_ip],params[:server_port],'*' + params[:browser].to_s,params[:timeout])
33
+ end
34
+
35
+ def self.create_fake(params)
36
+ FakeBrowser.new
37
+ end
38
+
39
+ end
40
+
41
+ class FakeBrowser
42
+ def goto(*args)
43
+ end
44
+ def close
45
+ end
46
+
47
+ end
48
+
49
+ end
50
+
@@ -1,3 +1,3 @@
1
1
  # This file is autogenerated. Do not edit.
2
2
  # Use 'rake version.rb' to update.
3
- module WatirCraft; VERSION = '0.4.1'; end
3
+ module WatirCraft; VERSION = '0.4.2'; end
@@ -10,8 +10,13 @@ describe "Page Generation" do
10
10
  include Helpers::Taza
11
11
 
12
12
  before :each do
13
- generate_project
14
- @site_class = generate_site('Gap')
13
+ site_name = "Gap#{Time.now.to_i}"
14
+ generate_project ["--site=#{site_name}"]
15
+ site_file_path = File.join(PROJECT_FOLDER,'lib',"#{site_name.underscore}.rb")
16
+ require site_file_path
17
+ "::#{site_name.camelize}::#{site_name.camelize}".constantize.any_instance.stubs(:base_path).returns(PROJECT_FOLDER)
18
+ @site_class = site_name.camelize.constantize
19
+
15
20
  @site_name = @site_class.to_s.underscore
16
21
  end
17
22
 
@@ -7,97 +7,151 @@ require 'taza'
7
7
 
8
8
  describe "Project Generator" do
9
9
  include RubiGen::GeneratorTestHelper
10
+ include Helpers::Generator
10
11
 
11
12
  def project_file relative_path
12
13
  File.join(TMP_ROOT, PROJECT_NAME, relative_path)
13
14
  end
14
-
15
+ def project_folder project_name=PROJECT_NAME
16
+ File.join(TMP_ROOT, project_name)
17
+ end
18
+
15
19
  before :each do
16
- @spec_helper = project_file 'test/specs/spec_helper.rb'
17
- @initializer = project_file 'lib/initialize.rb'
18
20
  ENV['ENVIRONMENT'] = nil
19
21
  bare_setup
22
+
23
+ @site_folder = project_file 'lib'
24
+ @page_folder = project_file 'lib/pages'
25
+ @initializer = project_file 'lib/initialize.rb'
20
26
  end
21
27
 
22
28
  after :each do
23
29
  bare_teardown
24
30
  end
25
31
 
26
- def should_be_loadable file, options=[]
27
- options = [options] unless options.is_a? Array
28
- generator_args = [APP_ROOT] + options
29
- run_generator('watircraft', generator_args, generator_sources)
32
+ def should_be_loadable file
30
33
  load_path = File.dirname(__FILE__) + '/../lib'
31
34
  system("ruby -I#{load_path} #{file} > #{null_device}").should be_true
32
35
  end
33
36
 
34
37
  it "should generate a spec helper that can be required even when site name is different" do
35
- should_be_loadable @spec_helper, ['--site=another_name', '--driver=fake']
36
- end
38
+ generate_project ['--site=another_name', '--driver=fake']
39
+ spec_helper = project_file 'test/specs/spec_helper.rb'
40
+ should_be_loadable spec_helper
41
+ end
37
42
 
38
43
  it "should generate a feature helper that can be required" do
44
+ generate_project ['--driver=fake']
39
45
  feature_helper = project_file 'test/features/feature_helper.rb'
40
- should_be_loadable feature_helper, '--driver=fake'
46
+ should_be_loadable feature_helper
41
47
  end
42
48
 
43
49
  it "should generate a world file that can be required" do
50
+ generate_project ['--driver=fake']
44
51
  world = project_file 'lib/steps/world.rb'
45
- should_be_loadable world, '--driver=fake'
52
+ should_be_loadable world
46
53
  end
47
54
 
48
55
  it "should generate a rakefile that can be required" do
56
+ generate_project
49
57
  rakefile = project_file 'rakefile'
50
58
  should_be_loadable rakefile
51
59
  end
52
60
 
53
61
  it "should generate an initializer that can be required" do
62
+ generate_project
54
63
  should_be_loadable @initializer
55
64
  end
56
65
 
57
66
  it "should be able to update an existing project and figure out the site name" do
58
- run_generator('watircraft', [APP_ROOT, '--site=crazy'], generator_sources)
59
- run_generator('watircraft', [APP_ROOT], generator_sources)
67
+ generate_project ['--site=crazy']
68
+ generate_project
60
69
  Taza::Settings.config[:site].should == 'crazy'
61
70
  end
62
71
 
63
72
  it "initializer should set the ENVIRONMENT variable if it is not provided" do
64
- run_generator('watircraft', [APP_ROOT], generator_sources)
73
+ generate_project
65
74
  load @initializer
66
75
  ENV['ENVIRONMENT'].should eql("test")
67
76
  end
68
77
 
69
78
  it "initializer should not override the ENVIRONMENT variable if was provided" do
70
79
  ENV['ENVIRONMENT'] = 'orange pie? is there such a thing?'
71
- run_generator('watircraft', [APP_ROOT], generator_sources)
80
+ generate_project
72
81
  load @initializer
73
82
  ENV['ENVIRONMENT'].should eql('orange pie? is there such a thing?')
74
83
  end
75
84
 
76
85
  it "should configure a project for watir, implicitly" do
77
- run_generator('watircraft', [APP_ROOT], generator_sources)
86
+ generate_project
78
87
  Taza::Settings.stubs(:path).returns(APP_ROOT)
79
88
  ENV['ENVIRONMENT'] = 'test'
80
89
  Taza::Settings.config[:driver].should == :watir
81
90
  end
82
91
 
83
92
  it "should allow a site name to be specified" do
84
- run_generator('watircraft', [APP_ROOT, '--site=site_name'], generator_sources)
93
+ generate_project ['--site=site_name']
85
94
  Taza::Settings.stubs(:path).returns(APP_ROOT)
86
95
  ENV['ENVIRONMENT'] = 'test'
87
96
  Taza::Settings.config[:site].should == 'site_name'
88
97
  end
89
98
 
90
99
  it "should allow a browser driver to be specified" do
91
- run_generator('watircraft', [APP_ROOT, '--driver=nine_iron'], generator_sources)
100
+ generate_project ['--driver=nine_iron']
92
101
  Taza::Settings.stubs(:path).returns(APP_ROOT)
93
102
  ENV['ENVIRONMENT'] = 'test'
94
103
  Taza::Settings.config[:driver].should == :nine_iron
95
104
  end
96
105
 
97
106
  it "should generate a script/console" do
98
- run_generator('watircraft', [APP_ROOT], generator_sources)
107
+ generate_project
99
108
  File.exist?(project_file('script/console')).should be_true
100
109
  File.exist?(project_file('script/console.cmd')).should be_true
101
110
  end
102
111
 
112
+ it "should generate configuration file for a site" do
113
+ generate_project
114
+ File.exists?(File.join(PROJECT_FOLDER,'config','environments.yml')).should be_true
115
+ end
116
+
117
+ it "should generate site files and folders" do
118
+ generate_project
119
+ File.directory?(@site_folder).should be_true
120
+ File.directory?(@page_folder).should be_true
121
+ File.exists?("#{@site_folder}/example.rb").should be_true
122
+ end
123
+
124
+ it "should generate a site path even if the site name is given with spaces" do
125
+ generate_project ["--site=example foo"]
126
+ File.directory?(@site_folder).should be_true
127
+ File.directory?(@page_folder).should be_true
128
+ File.exists?("#{@site_folder}/example_foo.rb").should be_true
129
+ end
130
+
131
+ it "should generate a site path even if the site name is given with underscores" do
132
+ generate_project ["--site=example_foo"]
133
+ File.directory?(@site_folder).should be_true
134
+ File.directory?(@page_folder).should be_true
135
+ File.exists?("#{@site_folder}/example_foo.rb").should be_true
136
+ end
137
+
138
+ include Helpers::Taza
139
+ it "generated site that uses the block given in new" do
140
+ site_name = "example#{Time.now.to_i}"
141
+ generate_project ["--site=#{site_name}"]
142
+
143
+ site_file_path = project_file "lib/#{site_name.underscore}.rb"
144
+ require site_file_path
145
+ "::#{site_name.camelize}::#{site_name.camelize}".constantize.any_instance.stubs(:base_path).returns(PROJECT_FOLDER)
146
+ site_class = site_name.camelize.constantize
147
+
148
+ stub_settings
149
+ stub_browser
150
+ foo = nil
151
+ site_class.new {|site| foo = site}
152
+ foo.should_not be_nil
153
+ foo.should be_a_kind_of(Taza::Site)
154
+ end
155
+
156
+
103
157
  end
@@ -10,16 +10,9 @@ end
10
10
 
11
11
  module Helpers
12
12
  module Generator
13
- def generate_site(site_name)
14
- site_name = "#{site_name}#{Time.now.to_i}"
15
- run_generator('site', [site_name], generator_sources)
16
- site_file_path = File.join(PROJECT_FOLDER,'lib',"#{site_name.underscore}.rb")
17
- require site_file_path
18
- "::#{site_name.camelize}::#{site_name.camelize}".constantize.any_instance.stubs(:base_path).returns(PROJECT_FOLDER)
19
- site_name.camelize.constantize
20
- end
21
- def generate_project
22
- run_generator('watircraft', [APP_ROOT], generator_sources)
13
+ def generate_project options=[]
14
+ generator_args = [APP_ROOT] + options
15
+ run_generator('watircraft', generator_args, generator_sources)
23
16
  ::Taza::Settings.stubs(:path).returns(APP_ROOT)
24
17
  end
25
18
  end
@@ -0,0 +1,36 @@
1
+ require 'spec/spec_helper'
2
+ require 'watir'
3
+ require 'watir/ie'
4
+ require 'firewatir'
5
+ require 'extensions/watir'
6
+
7
+ describe 'Watir Extensions' do
8
+ share_examples_for 'extended watir' do
9
+ def should_provide_display_value_method_for_class klass
10
+ container = stub()
11
+ container.stubs(:page_container)
12
+ element = klass.new container, :index, 1
13
+ element.method(:display_value) # should be defined
14
+ end
15
+
16
+ specify { should_provide_display_value_method_for_class @module::TextField }
17
+ specify { should_provide_display_value_method_for_class @module::NonControlElement}
18
+ specify { should_provide_display_value_method_for_class @module::H3 }
19
+ end
20
+
21
+ describe "IE Watir" do
22
+ it_should_behave_like 'extended watir'
23
+ Watir.add_display_value_methods_to Watir
24
+ before do
25
+ @module = Watir
26
+ end
27
+ end
28
+
29
+ describe "Fire Watir" do
30
+ it_should_behave_like 'extended watir'
31
+ Watir.add_display_value_methods_to FireWatir
32
+ before do
33
+ @module = FireWatir
34
+ end
35
+ end
36
+ end
data/watircraft.gemspec CHANGED
@@ -2,17 +2,17 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{watircraft}
5
- s.version = "0.4.1"
5
+ s.version = "0.4.2"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Bret Pettichord", "Jim Matthews", "Charley Baker", "Adam Anderson"]
9
- s.date = %q{2009-02-25}
9
+ s.date = %q{2009-03-24}
10
10
  s.default_executable = %q{watircraft}
11
11
  s.description = %q{WatirCraft is a framework for web testing.}
12
12
  s.email = %q{bret@pettichord.com}
13
13
  s.executables = ["watircraft"]
14
14
  s.extra_rdoc_files = ["History.txt", "README.rdoc"]
15
- s.files = ["BUGS.txt", "History.txt", "Manifest.txt", "README.rdoc", "VERSION.yml", "watircraft.gemspec", "bin/watircraft", "lib/extensions", "lib/extensions/array.rb", "lib/extensions/hash.rb", "lib/extensions/object.rb", "lib/extensions/string.rb", "lib/extensions/watir.rb", "lib/taza", "lib/taza/browser.rb", "lib/taza/entity.rb", "lib/taza/fixture.rb", "lib/taza/flow.rb", "lib/taza/page.rb", "lib/taza/settings.rb", "lib/taza/site.rb", "lib/taza/tasks.rb", "lib/taza.rb", "lib/watircraft", "lib/watircraft/generator_helper.rb", "lib/watircraft/table.rb", "lib/watircraft/version.rb", "lib/watircraft.rb", "spec/array_spec.rb", "spec/browser_spec.rb", "spec/entity_spec.rb", "spec/fake_table.rb", "spec/fixtures_spec.rb", "spec/fixture_spec.rb", "spec/hash_spec.rb", "spec/object_spec.rb", "spec/page_generator_spec.rb", "spec/page_spec.rb", "spec/project_generator_spec.rb", "spec/sandbox", "spec/sandbox/config", "spec/sandbox/config/config.yml", "spec/sandbox/config/environments.yml", "spec/sandbox/config/simpler.yml", "spec/sandbox/config/simpler_site.yml", "spec/sandbox/config.yml", "spec/sandbox/fixtures", "spec/sandbox/fixtures/examples.yml", "spec/sandbox/fixtures/users.yml", "spec/sandbox/flows", "spec/sandbox/flows/batman.rb", "spec/sandbox/flows/robin.rb", "spec/sandbox/pages", "spec/sandbox/pages/foo", "spec/sandbox/pages/foo/bar_page.rb", "spec/sandbox/pages/foo/partials", "spec/sandbox/pages/foo/partials/partial_the_reckoning.rb", "spec/settings_spec.rb", "spec/site_generator_spec.rb", "spec/site_spec.rb", "spec/spec_generator_helper.rb", "spec/spec_generator_spec.rb", "spec/spec_helper.rb", "spec/steps_generator_spec.rb", "spec/string_spec.rb", "spec/table_spec.rb", "spec/taza_spec.rb", "spec/watircraft_bin_spec.rb", "app_generators/watircraft", "app_generators/watircraft/templates", "app_generators/watircraft/templates/config.yml.erb", "app_generators/watircraft/templates/feature_helper.rb", "app_generators/watircraft/templates/initialize.rb.erb", "app_generators/watircraft/templates/rakefile.rb", "app_generators/watircraft/templates/script", "app_generators/watircraft/templates/script/console", "app_generators/watircraft/templates/script/console.cmd", "app_generators/watircraft/templates/site_start.rb.erb", "app_generators/watircraft/templates/spec_helper.rb", "app_generators/watircraft/templates/spec_initialize.rb", "app_generators/watircraft/templates/world.rb", "app_generators/watircraft/USAGE", "app_generators/watircraft/watircraft_generator.rb", "watircraft_generators/page", "watircraft_generators/page/page_generator.rb", "watircraft_generators/page/templates", "watircraft_generators/page/templates/page.rb.erb", "watircraft_generators/page/USAGE", "watircraft_generators/site", "watircraft_generators/site/site_generator.rb", "watircraft_generators/site/templates", "watircraft_generators/site/templates/environments.yml.erb", "watircraft_generators/site/templates/site.rb.erb", "watircraft_generators/spec", "watircraft_generators/spec/spec_generator.rb", "watircraft_generators/spec/templates", "watircraft_generators/spec/templates/spec.rb.erb", "watircraft_generators/spec/USAGE", "watircraft_generators/steps", "watircraft_generators/steps/steps_generator.rb", "watircraft_generators/steps/templates", "watircraft_generators/steps/templates/steps.rb.erb", "watircraft_generators/steps/USAGE"]
15
+ s.files = ["BUGS.txt", "History.txt", "Manifest.txt", "README.rdoc", "VERSION.yml", "watircraft.gemspec", "bin/watircraft", "lib/extensions", "lib/extensions/array.rb", "lib/extensions/hash.rb", "lib/extensions/object.rb", "lib/extensions/string.rb", "lib/extensions/watir.rb", "lib/taza", "lib/taza/browser.rb", "lib/taza/entity.rb", "lib/taza/fixture.rb", "lib/taza/flow.rb", "lib/taza/page.rb", "lib/taza/settings.rb", "lib/taza/site.rb", "lib/taza/tasks.rb", "lib/taza.rb", "lib/watircraft", "lib/watircraft/generator_helper.rb", "lib/watircraft/table.rb", "lib/watircraft/version.rb", "lib/watircraft.rb", "spec/array_spec.rb", "spec/browser_spec.rb", "spec/entity_spec.rb", "spec/fake_table.rb", "spec/fixtures_spec.rb", "spec/fixture_spec.rb", "spec/hash_spec.rb", "spec/object_spec.rb", "spec/page_generator_spec.rb", "spec/page_spec.rb", "spec/project_generator_spec.rb", "spec/sandbox", "spec/sandbox/config", "spec/sandbox/config/config.yml", "spec/sandbox/config/environments.yml", "spec/sandbox/config/simpler.yml", "spec/sandbox/config/simpler_site.yml", "spec/sandbox/config.yml", "spec/sandbox/fixtures", "spec/sandbox/fixtures/examples.yml", "spec/sandbox/fixtures/users.yml", "spec/sandbox/flows", "spec/sandbox/flows/batman.rb", "spec/sandbox/flows/robin.rb", "spec/sandbox/pages", "spec/sandbox/pages/foo", "spec/sandbox/pages/foo/bar_page.rb", "spec/sandbox/pages/foo/partials", "spec/sandbox/pages/foo/partials/partial_the_reckoning.rb", "spec/settings_spec.rb", "spec/site_spec.rb", "spec/spec_generator_helper.rb", "spec/spec_generator_spec.rb", "spec/spec_helper.rb", "spec/steps_generator_spec.rb", "spec/string_spec.rb", "spec/table_spec.rb", "spec/taza_spec.rb", "spec/watircraft_bin_spec.rb", "spec/watir_spec.rb", "app_generators/watircraft", "app_generators/watircraft/templates", "app_generators/watircraft/templates/config.yml.erb", "app_generators/watircraft/templates/environments.yml.erb", "app_generators/watircraft/templates/feature_helper.rb", "app_generators/watircraft/templates/initialize.rb.erb", "app_generators/watircraft/templates/rakefile.rb", "app_generators/watircraft/templates/script", "app_generators/watircraft/templates/script/console", "app_generators/watircraft/templates/script/console.cmd", "app_generators/watircraft/templates/site.rb.erb", "app_generators/watircraft/templates/site_start.rb.erb", "app_generators/watircraft/templates/spec_helper.rb", "app_generators/watircraft/templates/spec_initialize.rb", "app_generators/watircraft/templates/world.rb", "app_generators/watircraft/USAGE", "app_generators/watircraft/watircraft_generator.rb", "watircraft_generators/page", "watircraft_generators/page/page_generator.rb", "watircraft_generators/page/templates", "watircraft_generators/page/templates/page.rb.erb", "watircraft_generators/page/USAGE", "watircraft_generators/spec", "watircraft_generators/spec/spec_generator.rb", "watircraft_generators/spec/templates", "watircraft_generators/spec/templates/spec.rb.erb", "watircraft_generators/spec/USAGE", "watircraft_generators/steps", "watircraft_generators/steps/steps_generator.rb", "watircraft_generators/steps/templates", "watircraft_generators/steps/templates/steps.rb.erb", "watircraft_generators/steps/USAGE"]
16
16
  s.has_rdoc = true
17
17
  s.rdoc_options = ["--main", "README.rdoc"]
18
18
  s.require_paths = ["lib"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bret-watircraft
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bret Pettichord
@@ -12,7 +12,7 @@ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
14
 
15
- date: 2009-02-25 00:00:00 -08:00
15
+ date: 2009-03-24 00:00:00 -07:00
16
16
  default_executable: watircraft
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
@@ -153,7 +153,6 @@ files:
153
153
  - spec/sandbox/pages/foo/partials
154
154
  - spec/sandbox/pages/foo/partials/partial_the_reckoning.rb
155
155
  - spec/settings_spec.rb
156
- - spec/site_generator_spec.rb
157
156
  - spec/site_spec.rb
158
157
  - spec/spec_generator_helper.rb
159
158
  - spec/spec_generator_spec.rb
@@ -163,15 +162,18 @@ files:
163
162
  - spec/table_spec.rb
164
163
  - spec/taza_spec.rb
165
164
  - spec/watircraft_bin_spec.rb
165
+ - spec/watir_spec.rb
166
166
  - app_generators/watircraft
167
167
  - app_generators/watircraft/templates
168
168
  - app_generators/watircraft/templates/config.yml.erb
169
+ - app_generators/watircraft/templates/environments.yml.erb
169
170
  - app_generators/watircraft/templates/feature_helper.rb
170
171
  - app_generators/watircraft/templates/initialize.rb.erb
171
172
  - app_generators/watircraft/templates/rakefile.rb
172
173
  - app_generators/watircraft/templates/script
173
174
  - app_generators/watircraft/templates/script/console
174
175
  - app_generators/watircraft/templates/script/console.cmd
176
+ - app_generators/watircraft/templates/site.rb.erb
175
177
  - app_generators/watircraft/templates/site_start.rb.erb
176
178
  - app_generators/watircraft/templates/spec_helper.rb
177
179
  - app_generators/watircraft/templates/spec_initialize.rb
@@ -183,11 +185,6 @@ files:
183
185
  - watircraft_generators/page/templates
184
186
  - watircraft_generators/page/templates/page.rb.erb
185
187
  - 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
188
  - watircraft_generators/spec
192
189
  - watircraft_generators/spec/spec_generator.rb
193
190
  - watircraft_generators/spec/templates
@@ -1,62 +0,0 @@
1
- require 'spec/spec_helper'
2
- require 'spec/spec_generator_helper'
3
- require 'rubygems'
4
- require 'fileutils'
5
- require 'taza'
6
-
7
- describe "Site Generation" do
8
- include RubiGen::GeneratorTestHelper
9
- include Helpers::Generator
10
- include Helpers::Taza
11
-
12
- before :all do
13
- @spec_helper = File.join(TMP_ROOT,PROJECT_NAME,'spec','spec_helper.rb')
14
- @site_name = "WikipediaFoo"
15
- @site_file = File.join(PROJECT_FOLDER,'lib', "wikipedia_foo.rb")
16
- @site_folder = File.join(PROJECT_FOLDER,'lib')
17
- @page_folder = File.join(@site_folder, 'pages')
18
- end
19
-
20
- before :each do
21
- bare_setup
22
- run_generator('watircraft', [APP_ROOT], generator_sources)
23
- end
24
-
25
- after :each do
26
- bare_teardown
27
- end
28
-
29
- it "should generate configuration file for a site" do
30
- run_generator('site', [@site_name], generator_sources)
31
- File.exists?(File.join(PROJECT_FOLDER,'config','environments.yml')).should be_true
32
- end
33
-
34
- it "should generate a site path for pages" do
35
- run_generator('site', [@site_name], generator_sources)
36
- File.directory?(@site_folder).should be_true
37
- File.directory?(@page_folder).should be_true
38
- end
39
-
40
- it "should generate a site path even if the site name is given with spaces" do
41
- run_generator('site', ["Wikipedia Foo"], generator_sources)
42
- File.directory?(@site_folder).should be_true
43
- File.directory?(@page_folder).should be_true
44
- end
45
-
46
- it "should generate a site path even if the site name is given with underscores" do
47
- run_generator('site', ["wikipedia_foo"], generator_sources)
48
- File.directory?(@site_folder).should be_true
49
- File.directory?(@page_folder).should be_true
50
- end
51
-
52
- it "generated site that uses the block given in new" do
53
- @site_class = generate_site(@site_name)
54
- stub_settings
55
- stub_browser
56
- foo = nil
57
- @site_class.new {|site| foo = site}
58
- foo.should_not be_nil
59
- foo.should be_a_kind_of(Taza::Site)
60
- end
61
-
62
- end
@@ -1,51 +0,0 @@
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