taza 0.5.0 → 0.8.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 (55) hide show
  1. data/History.txt +33 -0
  2. data/Manifest.txt +39 -9
  3. data/README.txt +29 -7
  4. data/Rakefile +72 -13
  5. data/bin/taza +16 -3
  6. data/generators/flow/flow_generator.rb +57 -0
  7. data/generators/flow/templates/flow.rb.erb +12 -0
  8. data/generators/page/page_generator.rb +58 -0
  9. data/generators/page/templates/functional_page_spec.rb.erb +8 -0
  10. data/generators/page/templates/page.rb.erb +8 -0
  11. data/generators/site/site_generator.rb +55 -0
  12. data/generators/site/templates/site.rb.erb +10 -0
  13. data/generators/site/templates/site.yml.erb +3 -0
  14. data/lib/app_generators/taza/taza_generator.rb +76 -0
  15. data/lib/app_generators/taza/templates/config.yml.erb +3 -0
  16. data/lib/{taza/generators → app_generators/taza}/templates/rakefile.rb.erb +0 -0
  17. data/lib/app_generators/taza/templates/spec_helper.rb.erb +11 -0
  18. data/lib/taza.rb +44 -5
  19. data/lib/taza/browser.rb +40 -0
  20. data/lib/taza/browsers/ie_watir.rb +8 -0
  21. data/lib/taza/browsers/safari_watir.rb +8 -0
  22. data/lib/taza/flow.rb +45 -0
  23. data/lib/taza/page.rb +66 -19
  24. data/lib/taza/settings.rb +36 -0
  25. data/lib/taza/site.rb +122 -11
  26. data/lib/taza/tasks.rb +26 -34
  27. data/spec/browser_spec.rb +72 -0
  28. data/spec/flow_generator_spec.rb +70 -0
  29. data/spec/page_generator_spec.rb +57 -0
  30. data/spec/page_spec.rb +82 -0
  31. data/spec/platform/osx/browser_spec.rb +14 -0
  32. data/spec/platform/windows/browser_spec.rb +14 -0
  33. data/spec/project_generator_spec.rb +42 -0
  34. data/spec/sandbox/config.yml +3 -0
  35. data/spec/sandbox/config/config.yml +1 -0
  36. data/spec/sandbox/config/site_name.yml +5 -0
  37. data/spec/sandbox/flows/batman.rb +2 -0
  38. data/spec/sandbox/flows/robin.rb +4 -0
  39. data/spec/sandbox/pages/foo/bar.rb +9 -0
  40. data/spec/settings_spec.rb +88 -0
  41. data/spec/site_generator_spec.rb +53 -0
  42. data/spec/site_spec.rb +239 -0
  43. data/spec/spec_helper.rb +49 -0
  44. data/spec/taza_bin_spec.rb +14 -0
  45. data/spec/taza_spec.rb +12 -0
  46. data/spec/taza_tasks_spec.rb +27 -0
  47. data/spec/unit_helper_spec.rb +14 -0
  48. metadata +103 -13
  49. data/lib/taza/generators.rb +0 -4
  50. data/lib/taza/generators/base.rb +0 -33
  51. data/lib/taza/generators/page.rb +0 -22
  52. data/lib/taza/generators/project.rb +0 -18
  53. data/lib/taza/generators/site.rb +0 -24
  54. data/lib/taza/generators/templates/page.rb.erb +0 -6
  55. data/lib/taza/generators/templates/site.rb.erb +0 -6
data/spec/page_spec.rb ADDED
@@ -0,0 +1,82 @@
1
+ require 'spec/spec_helper'
2
+ require 'taza/page'
3
+
4
+ describe Taza::Page do
5
+
6
+ class ElementAndFilterContextExample < Taza::Page
7
+ element(:sample_element) {browser}
8
+ filter:sample_filter, :sample_element
9
+ def sample_filter
10
+ browser
11
+ end
12
+ end
13
+
14
+ it "should execute an element's block with the params provided for its method" do
15
+ Taza::Page.element(:boo){|baz| baz}
16
+ Taza::Page.new.boo("rofl").should == "rofl"
17
+ end
18
+
19
+ it "should execute elements and filters in the context of the page instance" do
20
+ page = ElementAndFilterContextExample.new
21
+ page.browser = :something
22
+ page.sample_element.should eql(:something)
23
+ end
24
+
25
+ it "should add a filter to the classes filters" do
26
+ ElementAndFilterContextExample.filters.size.should eql(1)
27
+ end
28
+
29
+ it "should store the block given to the element method in a method with the name of the parameter" do
30
+ Taza::Page.element(:foo) do
31
+ "bar"
32
+ end
33
+ Taza::Page.new.foo.should == "bar"
34
+ end
35
+
36
+ class FilterAllElements < Taza::Page
37
+ element(:foo) {}
38
+ element(:apple) {}
39
+ filter :false_filter
40
+
41
+ def false_filter
42
+ false
43
+ end
44
+ end
45
+
46
+ it "should filter all elements if element argument is not provided" do
47
+ lambda { FilterAllElements.new.apple }.should raise_error(Taza::FilterError)
48
+ lambda { FilterAllElements.new.foo }.should raise_error(Taza::FilterError)
49
+ end
50
+
51
+ it "should have empty elements on a new class" do
52
+ foo = Class::new(superclass=Taza::Page)
53
+ foo.elements.should_not be_nil
54
+ foo.elements.should be_empty
55
+ end
56
+
57
+ it "should have empty filters on a new class" do
58
+ foo = Class::new(superclass=Taza::Page)
59
+ foo.filters.should_not be_nil
60
+ foo.filters.should be_empty
61
+ end
62
+
63
+ class FilterAnElement < Taza::Page
64
+ attr_accessor :called_element_method
65
+ element(:false_item) { @called_element_method = true}
66
+ filter :false_filter, :false_item
67
+
68
+ def false_filter
69
+ false
70
+ end
71
+ end
72
+
73
+ it "should raise a error if an elements is called and its filter returns false" do
74
+ lambda { FilterAnElement.new.false_item }.should raise_error(Taza::FilterError)
75
+ end
76
+
77
+ it "should not call element block if filters fail" do
78
+ page = FilterAnElement.new
79
+ lambda { page.false_item }.should raise_error
80
+ page.called_element_method.should_not be_true
81
+ end
82
+ end
@@ -0,0 +1,14 @@
1
+ require 'spec/spec_helper'
2
+ require 'taza/browser'
3
+
4
+ describe "Taza::Browser with Safari Watir" do
5
+ it "should be able to make a safari watir instance" do
6
+ browser = nil
7
+ begin
8
+ browser = Taza::Browser.create({:browser => :safari, :driver => :watir,:url =>'http://www.google.com'})
9
+ browser.should be_a_kind_of(Watir::Safari)
10
+ ensure
11
+ browser.close if browser.is_a?(Watir::Safari)
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ require 'spec/spec_helper'
2
+ require 'taza/browser'
3
+
4
+ describe "Taza::Browser with watir ie" do
5
+ it "should be able to make watir ie instance" do
6
+ browser = nil
7
+ begin
8
+ browser = Taza::Browser.create({:browser => :ie,:driver =>:watir,:url => 'http://www.google.com'})
9
+ browser.should be_a_kind_of(Watir::IE)
10
+ ensure
11
+ browser.close if browser.respond_to?(:close)
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,42 @@
1
+ require 'spec/spec_helper'
2
+ require 'rubygems'
3
+ require 'rake'
4
+ require 'fileutils'
5
+ require 'taza'
6
+ require 'vendor/gems/gems/rubigen-1.3.2/test/test_generator_helper'
7
+
8
+ describe "Project Generator" do
9
+ include RubiGen::GeneratorTestHelper
10
+
11
+ before :all do
12
+ @spec_helper = File.join(TMP_ROOT,PROJECT_NAME,'spec','spec_helper.rb')
13
+ end
14
+
15
+ before :each do
16
+ bare_setup
17
+ end
18
+
19
+ after :each do
20
+ bare_teardown
21
+ end
22
+
23
+ it "should generate a spec helper that can be required" do
24
+ run_generator('taza', [APP_ROOT], generator_sources)
25
+ system("ruby -c #{@spec_helper} > #{null_device}").should be_true
26
+ end
27
+
28
+ it "spec helper should set the TAZA_ENV variable if it is not provided" do
29
+ ENV['TAZA_ENV'] = nil
30
+ run_generator('taza', [APP_ROOT], generator_sources)
31
+ load @spec_helper
32
+ ENV['TAZA_ENV'].should eql("isolation")
33
+ end
34
+
35
+ it "spec helper should not override the TAZA_ENV variable if was provided" do
36
+ ENV['TAZA_ENV'] = 'orange pie? is there such a thing?'
37
+ run_generator('taza', [APP_ROOT], generator_sources)
38
+ load @spec_helper
39
+ ENV['TAZA_ENV'].should eql('orange pie? is there such a thing?')
40
+ end
41
+
42
+ end
@@ -0,0 +1,3 @@
1
+ ---
2
+ :browser: :default_browser
3
+ :driver: :default_driver
@@ -0,0 +1 @@
1
+ :nothing: :something
@@ -0,0 +1,5 @@
1
+ ---
2
+ isolation:
3
+ :url: http://google.com
4
+ clown_shoes:
5
+ :url: http://clownshoes.com
@@ -0,0 +1,2 @@
1
+ class Batman < ::Taza::Flow
2
+ end
@@ -0,0 +1,4 @@
1
+ class Robin < ::Taza::Flow
2
+ def run(params)
3
+ end
4
+ end
@@ -0,0 +1,9 @@
1
+ class Bar < Taza::Page
2
+ element :foo do
3
+ browser
4
+ end
5
+
6
+ filter :name => :baz, :elements => [:foo] do
7
+ true
8
+ end
9
+ end
@@ -0,0 +1,88 @@
1
+ require 'spec/spec_helper'
2
+ require 'rubygems'
3
+ require 'taza'
4
+
5
+ describe Taza::Settings do
6
+
7
+ before :all do
8
+ @site_name = 'SiteName'
9
+ end
10
+
11
+ before :each do
12
+ ENV['TAZA_ENV'] = 'isolation'
13
+ ENV['browser'] = nil
14
+ ENV['driver'] = nil
15
+ end
16
+
17
+ it "should use environment variable for browser settings" do
18
+ Taza::Settings.stubs(:path).returns("spec/sandbox")
19
+ ENV['browser'] = 'foo'
20
+ Taza::Settings.config(@site_name)[:browser].should eql(:foo)
21
+ end
22
+
23
+ it "should provide default values if no config file or environment settings provided" do
24
+ Taza::Settings.stubs(:path).returns("spec/sandbox")
25
+ Taza::Settings.config(@site_name)[:driver].should eql(:selenium)
26
+ Taza::Settings.config(@site_name)[:browser].should eql(:firefox)
27
+ end
28
+
29
+ it "should use environment variable for driver settings" do
30
+ Taza::Settings.stubs(:path).returns("spec/sandbox")
31
+ ENV['driver'] = 'bar'
32
+ Taza::Settings.config(@site_name)[:driver].should eql(:bar)
33
+ end
34
+
35
+ it "should be able to load the site yml" do
36
+ Taza::Settings.stubs(:path).returns("spec/sandbox")
37
+ Taza::Settings.config("SiteName")[:url].should eql('http://google.com')
38
+ end
39
+
40
+ it "should be able to load a alternate site url" do
41
+ ENV['TAZA_ENV'] = 'clown_shoes'
42
+ Taza::Settings.stubs(:path).returns("spec/sandbox")
43
+ Taza::Settings.config("SiteName")[:url].should eql('http://clownshoes.com')
44
+ end
45
+
46
+ it "should use the config file's variable for browser settings if no environment variable is set" do
47
+ Taza::Settings.expects(:config_file).returns({:browser => :fu})
48
+ Taza::Settings.stubs(:path).returns("spec/sandbox")
49
+ Taza::Settings.config(@site_name)[:browser].should eql(:fu)
50
+ end
51
+
52
+ it "should use the ENV variables if specfied instead of config files" do
53
+ ENV['browser'] = 'opera'
54
+ Taza::Settings.expects(:config_file).returns({:browser => :fu})
55
+ Taza::Settings.stubs(:path).returns("spec/sandbox")
56
+ Taza::Settings.config(@site_name)[:browser].should eql(:opera)
57
+ end
58
+
59
+ it "should use the correct config file to set defaults" do
60
+ Taza::Settings.stubs(:path).returns("spec/sandbox")
61
+ Taza::Settings.stubs(:config_file_path).returns('spec/sandbox/config.yml')
62
+ end
63
+
64
+ it "should raise error for a config file that doesnot exist" do
65
+ Taza::Settings.stubs(:path).returns('spec/sandbox/file_not_exists.yml')
66
+ lambda {Taza::Settings.config}.should raise_error
67
+ end
68
+
69
+ it "should path point at root directory" do
70
+ Taza::Settings.path.should eql('.')
71
+ end
72
+
73
+ it "should use the config file's variable for driver settings if no environment variable is set" do
74
+ Taza::Settings.stubs(:path).returns("spec/sandbox")
75
+ Taza::Settings.stubs(:config_file).returns({:driver => :fun})
76
+ Taza::Settings.config(@site_name)[:driver].should eql(:fun)
77
+ end
78
+
79
+ class SiteName < Taza::Site
80
+
81
+ end
82
+
83
+ it "a site should be able to load its settings" do
84
+ Taza::Settings.stubs(:path).returns("spec/sandbox")
85
+ SiteName.settings[:url].should eql('http://google.com')
86
+ end
87
+
88
+ end
@@ -0,0 +1,53 @@
1
+ require 'spec/spec_helper'
2
+ require 'rubygems'
3
+ require 'fileutils'
4
+ require 'taza'
5
+ require 'vendor/gems/gems/rubigen-1.3.2/test/test_generator_helper'
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','sites' , "wikipedia_foo.rb")
16
+ @site_folder = File.join(PROJECT_FOLDER,'lib','sites' , "wikipedia_foo")
17
+ end
18
+
19
+ before :each do
20
+ bare_setup
21
+ run_generator('taza', [APP_ROOT], generator_sources)
22
+ end
23
+
24
+ after :each do
25
+ bare_teardown
26
+ end
27
+
28
+ it "should generate configuration file for a site" do
29
+ run_generator('site', [@site_name], generator_sources)
30
+ File.exists?(File.join(PROJECT_FOLDER,'config','wikipedia_foo.yml')).should be_true
31
+ end
32
+
33
+ it "should generate a site path for pages" do
34
+ run_generator('site', [@site_name], generator_sources)
35
+ File.directory?(@site_folder).should be_true
36
+ end
37
+
38
+ it "should generate a folder for a sites functional tests" do
39
+ run_generator('site', [@site_name], generator_sources)
40
+ File.directory?(File.join(PROJECT_FOLDER,'spec','functional','wikipedia_foo')).should be_true
41
+ end
42
+
43
+ it "generated site that uses the block given in new" do
44
+ @site_class = generate_site(@site_name)
45
+ stub_settings
46
+ stub_browser
47
+ foo = nil
48
+ @site_class.new {|site| foo = site}
49
+ foo.should_not be_nil
50
+ foo.should be_a_kind_of(Taza::Site)
51
+ end
52
+
53
+ end
data/spec/site_spec.rb ADDED
@@ -0,0 +1,239 @@
1
+ require 'spec/spec_helper'
2
+ require 'rubygems'
3
+ require 'taza'
4
+
5
+ describe Taza::Site do
6
+
7
+ before :all do
8
+ @pages_path = File.join("spec","sandbox","pages","foo","*.rb")
9
+ Foo = Class.new(Taza::Site)
10
+ end
11
+
12
+ before :each do
13
+ Foo.any_instance.stubs(:pages_path).returns(@pages_path)
14
+ ENV['browser'] = nil
15
+ ENV['driver'] = nil
16
+ Taza::Settings.stubs(:config_file).returns({})
17
+ Taza::Settings.stubs(:site_file).returns({})
18
+ Taza::Site.before_browser_closes {}
19
+ end
20
+
21
+ it "pages_path should contain the site class name" do
22
+ browser = stub_browser
23
+ Taza::Browser.stubs(:create).returns(browser)
24
+ Bax = Class.new(Taza::Site)
25
+ Bax.new.pages_path.should eql("./lib/sites/bax/pages/*.rb")
26
+ end
27
+
28
+ it "should execute a flow with given parameters" do
29
+ browser = stub_browser
30
+ Taza::Browser.stubs(:create).returns(browser)
31
+ params = {}
32
+ require 'spec/sandbox/flows/batman'
33
+ Batman.any_instance.expects(:run).with(params)
34
+ Barz = Class.new(Taza::Site)
35
+ Barz.any_instance.stubs(:path).returns('spec/sandbox')
36
+ Barz.new.flow(:batman,params)
37
+ end
38
+
39
+ it "should require a flow once it is called" do
40
+ browser = stub_browser
41
+ Taza::Browser.stubs(:create).returns(browser)
42
+ Class.constants.include?('Robin').should be_false
43
+ Bayz = Class.new(Taza::Site)
44
+ Bayz.any_instance.stubs(:path).returns('spec/sandbox')
45
+ Bayz.new.flow(:robin,{})
46
+ Robin
47
+ end
48
+
49
+ it "should create a browser using environment variables" do
50
+ browser = stub_browser
51
+ browser.stubs(:goto)
52
+ Taza::Browser.expects(:create_watir_ie).returns browser
53
+ ENV['browser'] = 'ie'
54
+ ENV['driver'] = 'watir'
55
+ f = Foo.new
56
+ end
57
+
58
+ it "should open watir browsers at the configuration URL" do
59
+ browser = stub_browser
60
+ browser.expects(:goto).with('a_url')
61
+ Taza::Browser.stubs(:create).returns(browser)
62
+ Taza::Settings.stubs(:config).returns(:url => 'a_url')
63
+ Foo.new
64
+ end
65
+
66
+ it "should yield an instance of a page class" do
67
+ f = Foo.new(:browser => stub_browser)
68
+ barzor = nil
69
+ f.bar do |bar|
70
+ barzor = bar
71
+ end
72
+ barzor.should be_an_instance_of(Bar)
73
+ end
74
+
75
+ it "should accept a browser instance" do
76
+ browser = stub_browser
77
+ foo = Foo.new(:browser => browser)
78
+ foo.browser.should eql(browser)
79
+
80
+ end
81
+
82
+ it "should create a browser instance if one is not provided" do
83
+ browser = stub_browser
84
+ Taza::Browser.stubs(:create).returns(browser)
85
+ foo = Foo.new
86
+ foo.browser.should eql(browser)
87
+ end
88
+
89
+ it "should still close browser if an error is raised" do
90
+ browser = stub_browser
91
+ browser.expects(:close)
92
+ Taza::Browser.stubs(:create).returns(browser)
93
+ lambda { Foo.new { |site| raise StandardError}}.should raise_error
94
+ end
95
+
96
+ it "should not close browser if block not given" do
97
+ browser = stub
98
+ browser.stubs(:goto)
99
+ browser.expects(:close).never
100
+ Taza::Browser.stubs(:create).returns(browser)
101
+ Foo.new
102
+ end
103
+
104
+ it "should not close browser if an error is raised on browser goto" do
105
+ browser = Object.new
106
+ browser.stubs(:goto).raises(StandardError,"ErrorOnBrowserGoto")
107
+ browser.expects(:close).never
108
+ Taza::Browser.stubs(:create).returns(browser)
109
+ lambda { Foo.new }.should raise_error(StandardError,"ErrorOnBrowserGoto")
110
+ end
111
+
112
+ it "should raise browser close error if no other errors" do
113
+ browser = stub_browser
114
+ browser.expects(:close).raises(StandardError,"BrowserCloseError")
115
+ Taza::Browser.stubs(:create).returns(browser)
116
+ lambda { Foo.new {}}.should raise_error(StandardError,"BrowserCloseError")
117
+ end
118
+
119
+ it "should raise error inside block if both it and browser.close throws an error" do
120
+ browser = stub_browser
121
+ browser.expects(:close).raises(StandardError,"BrowserCloseError")
122
+ Taza::Browser.stubs(:create).returns(browser)
123
+ lambda { Foo.new { |site| raise StandardError, "innererror" }}.should raise_error(StandardError,"innererror")
124
+ end
125
+
126
+ it "should close a browser if block given" do
127
+ browser = stub_browser
128
+ browser.expects(:close)
129
+ Taza::Browser.stubs(:create).returns(browser)
130
+ Foo.new do |site|
131
+ end
132
+ end
133
+
134
+ it "should yield itself upon initialization" do
135
+ Taza::Browser.stubs(:create).returns(stub_browser)
136
+ foo = nil
137
+ f = Foo.new do |site|
138
+ foo = site
139
+ end
140
+ foo.should eql(f)
141
+ end
142
+
143
+ it "should yield after page methods have been setup" do
144
+ Taza::Browser.stubs(:create).returns(stub_browser)
145
+ klass = Class::new(Taza::Site)
146
+ klass.any_instance.stubs(:pages_path).returns(@pages_path)
147
+ klass.new do |site|
148
+ site.should respond_to(:bar)
149
+ end
150
+ end
151
+ it "should yield after browser has been setup" do
152
+ Taza::Browser.stubs(:create).returns(stub_browser)
153
+ klass = Class::new(Taza::Site)
154
+ klass.any_instance.stubs(:pages_path).returns(@pages_path)
155
+ klass.new do |site|
156
+ site.browser.should_not be_nil
157
+ end
158
+ end
159
+
160
+ it "should pass its browser instance to its pages " do
161
+ browser = stub_browser
162
+ Taza::Browser.stubs(:create).returns(browser)
163
+ foo = Foo.new
164
+ foo.bar.browser.should eql(browser)
165
+ end
166
+
167
+ it "should have a way to evaluate a block of code before site closes the browser" do
168
+ browser = stub()
169
+ browser.stubs(:goto)
170
+ Taza::Browser.stubs(:create).returns(browser)
171
+ browser_state = states('browser_open_state').starts_as('on')
172
+ browser.expects(:close).then(browser_state.is('off'))
173
+ browser.expects(:doit).when(browser_state.is('on'))
174
+ Taza::Site.before_browser_closes { |browser| browser.doit }
175
+ Foo.new {}
176
+ end
177
+
178
+ it "should have a way to evaluate a block of code before site closes the browser if an error occurs" do
179
+ browser = stub()
180
+ browser.stubs(:goto)
181
+ Taza::Browser.stubs(:create).returns(browser)
182
+ browser_state = states('browser_open_state').starts_as('on')
183
+ browser.expects(:close).then(browser_state.is('off'))
184
+ browser.expects(:doit).when(browser_state.is('on'))
185
+ Taza::Site.before_browser_closes { |browser| browser.doit }
186
+ lambda { Foo.new { |site| raise StandardError, "innererror" }}.should raise_error(StandardError,"innererror")
187
+ end
188
+
189
+ it "should still close its browser if #before_browser_closes raises an exception" do
190
+ browser = stub()
191
+ browser.stubs(:goto)
192
+ Taza::Browser.stubs(:create).returns(browser)
193
+ browser.expects(:close)
194
+ Taza::Site.before_browser_closes { |browser| raise StandardError, 'foo error' }
195
+ lambda { Foo.new {} }.should raise_error(StandardError,'foo error')
196
+ end
197
+
198
+ it "should not close a browser it did not make" do
199
+ browser = stub()
200
+ browser.stubs(:goto)
201
+ browser.expects(:close).never
202
+ Foo.new(:browser => browser) {}
203
+ end
204
+
205
+ it "should close a browser it did make" do
206
+ browser = stub()
207
+ Taza::Browser.stubs(:create).returns(browser)
208
+ browser.stubs(:goto)
209
+ browser.expects(:close)
210
+ Foo.new() {}
211
+ end
212
+
213
+
214
+ module Zoro
215
+ class Zoro < ::Taza::Site
216
+ end
217
+ end
218
+
219
+ it "should pass in the class name to settings config" do
220
+ browser = stub()
221
+ browser.stubs(:goto)
222
+ Taza::Browser.stubs(:create).returns(browser)
223
+ Taza::Settings.expects(:config).with('Zoro').returns({})
224
+ Zoro::Zoro.new
225
+ end
226
+
227
+ it "should load settings based on the sites class name" do
228
+ Taza::Settings.expects(:site_file).with('Zoro').returns({})
229
+ Zoro::Zoro.settings
230
+ end
231
+
232
+ def stub_browser
233
+ browser = stub()
234
+ browser.stubs(:close)
235
+ browser.stubs(:goto)
236
+ browser
237
+ end
238
+
239
+ end