taza 0.8.7 → 0.9.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 (57) hide show
  1. data/.gitignore +5 -0
  2. data/.rvmrc +49 -0
  3. data/Gemfile +4 -0
  4. data/History.txt +7 -0
  5. data/README +1 -3
  6. data/Rakefile +5 -0
  7. data/TODO +22 -0
  8. data/bin/taza +0 -0
  9. data/generators/flow/flow_generator.rb +1 -1
  10. data/generators/page/page_generator.rb +1 -1
  11. data/generators/partial/partial_generator.rb +1 -1
  12. data/generators/site/site_generator.rb +1 -1
  13. data/lib/app_generators/taza/taza_generator.rb +1 -1
  14. data/lib/app_generators/taza/templates/rakefile.rb.erb +5 -4
  15. data/lib/app_generators/taza/templates/spec_helper.rb.erb +3 -3
  16. data/lib/extensions/object.rb +0 -27
  17. data/lib/extensions/string.rb +13 -2
  18. data/lib/formatters/failing_examples_formatter.rb +8 -0
  19. data/lib/taza.rb +3 -1
  20. data/lib/taza.rb.backup +24 -0
  21. data/lib/taza/browser.rb +10 -5
  22. data/lib/taza/entity.rb +2 -2
  23. data/lib/taza/fixtures.rb +9 -5
  24. data/lib/taza/options.rb +0 -0
  25. data/lib/taza/settings.rb +1 -1
  26. data/lib/taza/site.rb +0 -2
  27. data/lib/taza/tasks.rb +4 -9
  28. data/lib/taza/version.rb +3 -0
  29. data/spec/array_spec.rb +4 -4
  30. data/spec/browser_spec.rb +9 -36
  31. data/spec/entity_spec.rb +2 -2
  32. data/spec/fixture_spec.rb +3 -3
  33. data/spec/fixtures_spec.rb +12 -11
  34. data/spec/flow_generator_spec.rb +1 -4
  35. data/spec/hash_spec.rb +1 -1
  36. data/spec/page_generator_spec.rb +2 -2
  37. data/spec/page_module_spec.rb +2 -2
  38. data/spec/page_spec.rb +9 -9
  39. data/spec/partial_generator_spec.rb +1 -1
  40. data/spec/platform/windows/browser_win.rb +47 -0
  41. data/spec/project_generator_spec.rb +1 -15
  42. data/spec/sandbox/fixtures/foo_site/bars.yml +0 -0
  43. data/spec/sandbox/fixtures/foos.yml +0 -0
  44. data/spec/sandbox/pages/foo/bay.rb +0 -0
  45. data/spec/sandbox/pages/foo/baz.rb +0 -0
  46. data/spec/settings_spec.rb +1 -1
  47. data/spec/site_fixtures_spec.rb +2 -5
  48. data/spec/site_generator_spec.rb +3 -3
  49. data/spec/site_spec.rb +6 -6
  50. data/spec/spec_helper.rb +9 -14
  51. data/spec/string_spec.rb +5 -1
  52. data/spec/taza_bin_spec.rb +1 -1
  53. data/spec/taza_tasks_spec.rb +6 -6
  54. data/taza.gemspec +31 -46
  55. metadata +170 -117
  56. data/VERSION.yml +0 -4
  57. data/spec/object_spec.rb +0 -29
@@ -1,13 +1,13 @@
1
- require 'spec/spec_helper'
1
+ require 'spec_helper'
2
2
  require 'extensions/array'
3
3
 
4
4
  describe 'Array Extensions' do
5
- it "should know if elements are not equivilent to a subset of those elements" do
5
+ it "should know if elements are not equivalent to a subset of those elements" do
6
6
  [1,2,3].should_not be_equivalent([2,3])
7
7
  end
8
- it "should know if elements are not equivilent to a larger set including those elements" do
8
+ it "should know if elements are not equivalent to a larger set including those elements" do
9
9
  [1,2,3].should_not be_equivalent([1,2,3,4])
10
- end
10
+ end
11
11
  it "should know it is equivalent if the same order" do
12
12
  [1,2,3].should be_equivalent([1,2,3])
13
13
  end
@@ -1,9 +1,4 @@
1
- require 'spec/spec_helper'
2
- require 'taza/browser'
3
- require 'taza/settings'
4
- require 'taza/options'
5
- require 'selenium'
6
- require 'watir'
1
+ require 'spec_helper'
7
2
 
8
3
  describe Taza::Browser do
9
4
 
@@ -26,11 +21,16 @@ describe Taza::Browser do
26
21
  Selenium::SeleniumDriver.expects(:new).with(anything,anything,'*opera',anything)
27
22
  Taza::Browser.create(:browser => browser_type, :driver => :selenium)
28
23
  end
29
-
24
+
30
25
  it "should raise selenium unsupported browser error" do
31
26
  Taza::Browser.create(:browser => :foo, :driver => :selenium)
32
27
  end
33
28
 
29
+ it "should use params browser type when creating an watir webdriver instance" do
30
+ Watir::Browser.expects(:new).with(:firefox)
31
+ browser = Taza::Browser.create(:browser => :firefox, :driver => :watir_webdriver)
32
+ end
33
+
34
34
  it "should be able to create a selenium instance" do
35
35
  browser = Taza::Browser.create(:browser => :firefox, :driver => :selenium)
36
36
  browser.should be_a_kind_of(Selenium::SeleniumDriver)
@@ -53,34 +53,7 @@ describe Taza::Browser do
53
53
 
54
54
  it "should be able to give you the class of browser" do
55
55
  Taza::Browser.expects(:watir_safari).returns(Object)
56
- Taza::Browser.browser_class(:browser => :safari, :driver => :watir).should eql(Object)
57
- end
58
-
59
- it "should be able to attach to an open IE instance" do
60
- require 'watir'
61
- browser = Object.new
62
- Watir::IE.stubs(:find).returns(browser)
63
- Watir::IE.stubs(:new).returns(browser)
64
- old_browser = Watir::IE.new
65
- new_browser = Taza::Browser.create(:browser => :ie, :driver => :watir, :attach => true)
66
- new_browser.should eql(old_browser)
67
- end
68
-
69
- it "should be able to open a new IE instance if there is no instance to attach to" do
70
- require 'watir'
71
- browser = Object.new
72
- Watir::IE.stubs(:find).returns()
73
- Watir::IE.stubs(:new).returns(browser)
74
- new_browser = Taza::Browser.create(:browser => :ie, :driver => :watir)
75
- browser.nil?.should be_false
76
- end
77
- it "should be able to open a new IE instance if attach not specified" do
78
- require 'watir'
79
- foo = Object.new
80
- bar = Object.new
81
- Watir::IE.stubs(:find).returns(foo)
82
- Watir::IE.stubs(:new).returns(bar)
83
- new_browser = Taza::Browser.create(:browser => :ie, :driver => :watir)
84
- new_browser.should_not eql(foo)
56
+ Taza::Browser.browser_class(:browser => :safari, :driver => :watir).should eql(Object)
85
57
  end
58
+
86
59
  end
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require 'spec_helper'
2
2
  require 'taza/entity'
3
3
 
4
4
  describe Taza::Entity do
@@ -21,7 +21,7 @@ describe Taza::Entity do
21
21
  entity = Taza::Entity.new({:apple => 'pie' },nil)
22
22
  entity.to_hash[:apple].should eql('pie')
23
23
  end
24
-
24
+
25
25
  it "should be able to do string-to-symbol conversion for hash keys using to_hash" do
26
26
  entity = Taza::Entity.new({'apple' => 'pie' },nil)
27
27
  entity.to_hash[:apple].should eql('pie')
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require 'spec_helper'
2
2
  require 'taza/fixture'
3
3
  require 'extensions/array'
4
4
 
@@ -25,13 +25,13 @@ describe Taza::Fixture do
25
25
  fixture.pluralized_fixture_exists?('example').should be_true
26
26
  fixture.pluralized_fixture_exists?('boo').should be_false
27
27
  end
28
-
28
+
29
29
  it "should be able to get all fixtures loaded excluding sub-folder fixtures" do
30
30
  fixture = Taza::Fixture.new
31
31
  fixture.load_fixtures_from(@base_path)
32
32
  fixture.fixture_names.should be_equivalent([:examples,:users,:foos])
33
33
  end
34
-
34
+
35
35
  it "should be able to get specific fixture entities" do
36
36
  fixture = Taza::Fixture.new
37
37
  fixture.load_fixtures_from(@base_path)
@@ -1,28 +1,29 @@
1
- require 'spec/spec_helper'
2
- require 'taza/fixture'
1
+ require 'spec_helper'
2
+
3
3
 
4
4
  describe "Taza::Fixtures" do
5
- Taza::Fixture.stubs(:base_path).returns('./spec/sandbox/fixtures/')
6
- require 'taza/fixtures'
5
+
6
+ Taza::Fixture.stubs(:base_path).returns('./spec/sandbox/fixtures/')
7
+ Taza.load_fixtures
7
8
  include Taza::Fixtures
8
-
9
+
9
10
  it "should be able to look up a fixture entity off fixture_methods module" do
10
11
  examples(:first_example).name.should eql('first')
11
12
  end
12
-
13
+
13
14
  it "should still raise method missing error" do
14
15
  lambda{zomgwtf(:first_example)}.should raise_error(NoMethodError)
15
16
  end
16
-
17
+
17
18
  #TODO: this test tests what is in entity's instance eval not happy with it being here
18
19
  it "should be able to look up a fixture entity off fixture_methods module" do
19
20
  examples(:first_example).user.name.should eql(users(:shatner).name)
20
21
  end
21
-
22
+
22
23
  it "should be able to resolve one to many relationships" do
23
24
  foos(:gap).examples.length.should eql(2)
24
25
  end
25
-
26
+
26
27
  it "should be able to get one to many entities" do
27
28
  foos(:gap).examples['first_example'].name.should eql('first')
28
29
  foos(:gap).examples['second_example'].name.should eql('second')
@@ -39,9 +40,9 @@ describe "Taza::Fixtures" do
39
40
  it "should be able to get one to many entities for hash[key] style" do
40
41
  foos(:gap)['examples']['first_example']['name'].should eql('first')
41
42
  end
42
-
43
+
43
44
  it "should be able to access multiple levels inside fixtures" do
44
- examples(:forth_example).something.user('shatner').name.should eql('William Shatner')
45
+ examples(:forth_example).something.user.name.should eql('William Shatner')
45
46
  end
46
47
 
47
48
  end
@@ -1,7 +1,4 @@
1
- require 'spec/spec_helper'
2
- require 'rubygems'
3
- require 'fileutils'
4
- require 'taza/site'
1
+ require 'spec_helper'
5
2
 
6
3
  class Taza::Site
7
4
  def flows
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require 'spec_helper'
2
2
  require 'taza/entity'
3
3
  require 'extensions/hash'
4
4
 
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require 'spec_helper'
2
2
  require 'rubygems'
3
3
  require 'fileutils'
4
4
  require 'taza/page'
@@ -20,7 +20,7 @@ describe "Page Generation" do
20
20
  after :each do
21
21
  bare_teardown
22
22
  end
23
-
23
+
24
24
  it "should give you usage if you do not give two arguments" do
25
25
  PageGenerator.any_instance.expects(:usage)
26
26
  lambda { run_generator('page', [@page_name], generator_sources) }.should raise_error
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require 'spec_helper'
2
2
  require 'taza/page'
3
3
 
4
4
  describe "Taza Page Module" do
@@ -136,7 +136,7 @@ describe "Taza Page Module" do
136
136
  lambda { page.sample_element }.should raise_error(Taza::FilterError)
137
137
  page.another_sample_element.should eql(:something)
138
138
  end
139
-
139
+
140
140
  class PageWithFiltersAndModulesAndElements < ::Taza::Page
141
141
  page_module :foo_module do
142
142
  element(:sample_element) {:something}
@@ -1,8 +1,8 @@
1
- require 'spec/spec_helper'
1
+ require 'spec_helper'
2
2
  require 'taza/page'
3
3
 
4
4
  describe Taza::Page do
5
-
5
+
6
6
  class ElementAndFilterContextExample < Taza::Page
7
7
  element(:sample_element) {browser}
8
8
  filter:sample_filter, :sample_element
@@ -29,17 +29,17 @@ describe Taza::Page do
29
29
  Taza::Page.element(:boo){|baz| baz}
30
30
  Taza::Page.new.boo("rofl").should == "rofl"
31
31
  end
32
-
32
+
33
33
  it "should execute elements and filters in the context of the page instance" do
34
34
  page = ElementAndFilterContextExample.new
35
35
  page.browser = :something
36
36
  page.sample_element.should eql(:something)
37
37
  end
38
-
38
+
39
39
  it "should add a filter to the classes filters" do
40
- ElementAndFilterContextExample.filters.size.should eql(1)
40
+ ElementAndFilterContextExample.filters.size.should eql(1)
41
41
  end
42
-
42
+
43
43
  it "should store the block given to the element method in a method with the name of the parameter" do
44
44
  Taza::Page.element(:foo) do
45
45
  "bar"
@@ -56,12 +56,12 @@ describe Taza::Page do
56
56
  false
57
57
  end
58
58
  end
59
-
59
+
60
60
  it "should filter all elements if element argument is not provided" do
61
61
  lambda { FilterAllElements.new.apple }.should raise_error(Taza::FilterError)
62
62
  lambda { FilterAllElements.new.foo }.should raise_error(Taza::FilterError)
63
63
  end
64
-
64
+
65
65
  it "should have empty elements on a new class" do
66
66
  foo = Class::new(superclass=Taza::Page)
67
67
  foo.elements.should_not be_nil
@@ -87,7 +87,7 @@ describe Taza::Page do
87
87
  it "should raise a error if an elements is called and its filter returns false" do
88
88
  lambda { FilterAnElement.new.false_item }.should raise_error(Taza::FilterError)
89
89
  end
90
-
90
+
91
91
  it "should not call element block if filters fail" do
92
92
  page = FilterAnElement.new
93
93
  lambda { page.false_item }.should raise_error
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require 'spec_helper'
2
2
  require 'rubygems'
3
3
  require 'fileutils'
4
4
  require 'taza/page'
@@ -0,0 +1,47 @@
1
+ require 'spec/spec_helper'
2
+ require 'taza/browser'
3
+ require 'taza/settings'
4
+ require 'taza/options'
5
+ require 'selenium'
6
+ require 'watir'
7
+
8
+ describe Taza::Browser do
9
+
10
+ before :each do
11
+ Taza::Settings.stubs(:config_file).returns({})
12
+ ENV['TAZA_ENV'] = 'isolation'
13
+ ENV['SERVER_PORT'] = nil
14
+ ENV['SERVER_IP'] = nil
15
+ ENV['BROWSER'] = nil
16
+ ENV['DRIVER'] = nil
17
+ ENV['TIMEOUT'] = nil
18
+ end
19
+ it "should be able to attach to an open IE instance" do
20
+ require 'watir'
21
+ browser = Object.new
22
+ Watir::IE.stubs(:find).returns(browser)
23
+ Watir::IE.stubs(:new).returns(browser)
24
+ old_browser = Watir::IE.new
25
+ new_browser = Taza::Browser.create(:browser => :ie, :driver => :watir, :attach => true)
26
+ new_browser.should eql(old_browser)
27
+ end
28
+
29
+ it "should be able to open a new IE instance if there is no instance to attach to" do
30
+ require 'watir'
31
+ browser = Object.new
32
+ Watir::IE.stubs(:find).returns()
33
+ Watir::IE.stubs(:new).returns(browser)
34
+ new_browser = Taza::Browser.create(:browser => :ie, :driver => :watir)
35
+ browser.nil?.should be_false
36
+ end
37
+ it "should be able to open a new IE instance if attach not specified" do
38
+ require 'watir'
39
+ foo = Object.new
40
+ bar = Object.new
41
+ Watir::IE.stubs(:find).returns(foo)
42
+ Watir::IE.stubs(:new).returns(bar)
43
+ new_browser = Taza::Browser.create(:browser => :ie, :driver => :watir)
44
+ new_browser.should_not eql(foo)
45
+ end
46
+
47
+ end
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require 'spec_helper'
2
2
  require 'rubygems'
3
3
  require 'rake'
4
4
  require 'fileutils'
@@ -29,20 +29,6 @@ describe "Project Generator" do
29
29
  system("ruby -c #{@spec_helper} > #{null_device}").should be_true
30
30
  end
31
31
 
32
- it "spec helper should set the TAZA_ENV variable if it is not provided" do
33
- ENV['TAZA_ENV'] = nil
34
- run_generator('taza', [APP_ROOT], generator_sources)
35
- load @spec_helper
36
- ENV['TAZA_ENV'].should eql("isolation")
37
- end
38
-
39
- it "spec helper should not override the TAZA_ENV variable if was provided" do
40
- ENV['TAZA_ENV'] = 'orange pie? is there such a thing?'
41
- run_generator('taza', [APP_ROOT], generator_sources)
42
- load @spec_helper
43
- ENV['TAZA_ENV'].should eql('orange pie? is there such a thing?')
44
- end
45
-
46
32
  it "should generate a console script" do
47
33
  run_generator('taza', [APP_ROOT], generator_sources)
48
34
  File.exists?(File.join(APP_ROOT,'script','console')).should be_true
File without changes
File without changes
File without changes
File without changes
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require 'spec_helper'
2
2
  require 'rubygems'
3
3
  require 'taza/settings'
4
4
  require 'taza/options'
@@ -1,9 +1,7 @@
1
- require 'spec/spec_helper'
2
- require 'taza/fixture'
3
-
1
+ require 'spec_helper'
4
2
  describe "Site Specific Fixtures" do
5
3
  Taza::Fixture.stubs(:base_path).returns(File.join('.','spec','sandbox','fixtures',''))
6
- require 'taza/fixtures'
4
+ Taza.load_fixtures
7
5
  include Taza::Fixtures::FooSite
8
6
 
9
7
  it "should be able to access fixtures in sub-folders" do
@@ -13,5 +11,4 @@ describe "Site Specific Fixtures" do
13
11
  it "should not be able to access non-site-specific fixtures" do
14
12
  lambda{foos(:gap)}.should raise_error(NoMethodError)
15
13
  end
16
-
17
14
  end
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require 'spec_helper'
2
2
  require 'rubygems'
3
3
  require 'fileutils'
4
4
 
@@ -6,7 +6,7 @@ describe "Site Generation" do
6
6
  include RubiGen::GeneratorTestHelper
7
7
  include Helpers::Generator
8
8
  include Helpers::Taza
9
-
9
+
10
10
  before :all do
11
11
  @spec_helper = File.join(TMP_ROOT,PROJECT_NAME,'spec','spec_helper.rb')
12
12
  @site_name = "WikipediaFoo"
@@ -42,7 +42,7 @@ describe "Site Generation" do
42
42
  run_generator('site', [@site_name], generator_sources)
43
43
  File.directory?(File.join(PROJECT_FOLDER,'spec','isolation','wikipedia_foo')).should be_true
44
44
  end
45
-
45
+
46
46
  it "generated site that uses the block given in new" do
47
47
  @site_class = generate_site(@site_name)
48
48
  stub_settings
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require 'spec_helper'
2
2
  require 'rubygems'
3
3
  require 'taza/site'
4
4
  require 'taza/settings'
@@ -205,12 +205,12 @@ describe Taza::Site do
205
205
  Foo.new() {}
206
206
  end
207
207
 
208
-
208
+
209
209
  module Zoro
210
210
  class Zoro < ::Taza::Site
211
211
  end
212
212
  end
213
-
213
+
214
214
  it "should pass in the class name to settings config" do
215
215
  browser = stub()
216
216
  browser.stubs(:goto)
@@ -218,12 +218,12 @@ describe Taza::Site do
218
218
  Taza::Settings.expects(:config).with('Zoro').returns({})
219
219
  Zoro::Zoro.new
220
220
  end
221
-
221
+
222
222
  it "should load settings based on the sites class name" do
223
223
  Taza::Settings.expects(:site_file).with('Zoro').returns({})
224
224
  Zoro::Zoro.settings
225
225
  end
226
-
226
+
227
227
  def stub_browser
228
228
  browser = stub()
229
229
  browser.stubs(:close)
@@ -257,7 +257,7 @@ describe Taza::Site do
257
257
  Taza::Site.donot_close_browser
258
258
  Foo.new {}
259
259
  end
260
-
260
+
261
261
  it "should have a way to keep the browser instance open if an error is raised" do
262
262
  browser = stub_browser
263
263
  browser.expects(:close).never