taza 0.9.1.2 → 0.9.2.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 (67) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/.travis.yml +6 -51
  4. data/README.md +1 -0
  5. data/bin/taza +2 -15
  6. data/lib/taza.rb +7 -0
  7. data/lib/taza/generators/flow_generator.rb +17 -0
  8. data/lib/taza/generators/page_generator.rb +29 -0
  9. data/lib/taza/generators/partial_generator.rb +33 -0
  10. data/lib/taza/generators/project_generator.rb +30 -0
  11. data/lib/taza/generators/site_generator.rb +26 -0
  12. data/lib/taza/generators/taza_generators.rb +18 -0
  13. data/lib/taza/generators/templates/flow/flow.rb.tt +9 -0
  14. data/lib/taza/generators/templates/page/page.rb.tt +8 -0
  15. data/{generators/page/templates/functional_page_spec.rb.erb → lib/taza/generators/templates/page/page_spec.rb.tt} +2 -2
  16. data/lib/taza/generators/templates/partial/partial.rb.tt +8 -0
  17. data/lib/{app_generators/taza/templates/Gemfile.erb → taza/generators/templates/project/Gemfile.tt} +1 -1
  18. data/lib/taza/generators/templates/project/Rakefile.tt +13 -0
  19. data/lib/taza/generators/templates/project/config.yml.tt +3 -0
  20. data/lib/{app_generators/taza/templates → taza/generators/templates/project}/console.cmd.erb +0 -0
  21. data/lib/{app_generators/taza/templates → taza/generators/templates/project}/console.erb +0 -0
  22. data/lib/{app_generators/taza/templates/spec_helper.rb.erb → taza/generators/templates/project/spec_helper.rb.tt} +0 -0
  23. data/lib/taza/generators/templates/project/taza.tt +3 -0
  24. data/lib/taza/generators/templates/site/site.rb.tt +10 -0
  25. data/lib/taza/generators/templates/site/site.yml.tt +3 -0
  26. data/lib/taza/page.rb +7 -2
  27. data/lib/taza/site.rb +1 -1
  28. data/lib/taza/version.rb +1 -1
  29. data/spec/generators/flow_generator_spec.rb +26 -0
  30. data/spec/generators/page_generator_spec.rb +53 -0
  31. data/spec/generators/partial_generator_spec.rb +26 -0
  32. data/spec/generators/project_generator_spec.rb +76 -0
  33. data/spec/generators/site_generator_spec.rb +57 -0
  34. data/spec/{taza_bin_spec.rb → generators/taza_bin_spec.rb} +0 -0
  35. data/spec/spec_helper.rb +27 -2
  36. data/spec/{array_spec.rb → taza/array_spec.rb} +0 -0
  37. data/spec/{browser_spec.rb → taza/browser_spec.rb} +5 -3
  38. data/spec/{entity_spec.rb → taza/entity_spec.rb} +0 -0
  39. data/spec/{fixture_spec.rb → taza/fixture_spec.rb} +2 -1
  40. data/spec/{fixtures_spec.rb → taza/fixtures_spec.rb} +0 -0
  41. data/spec/{hash_spec.rb → taza/hash_spec.rb} +0 -0
  42. data/spec/{page_module_spec.rb → taza/page_module_spec.rb} +0 -0
  43. data/spec/{page_spec.rb → taza/page_spec.rb} +5 -1
  44. data/spec/{settings_spec.rb → taza/settings_spec.rb} +12 -12
  45. data/spec/{site_fixtures_spec.rb → taza/site_fixtures_spec.rb} +0 -0
  46. data/spec/{site_spec.rb → taza/site_spec.rb} +8 -11
  47. data/spec/{string_spec.rb → taza/string_spec.rb} +0 -0
  48. data/spec/{taza_tasks_spec.rb → taza/taza_tasks_spec.rb} +8 -9
  49. data/taza.gemspec +5 -6
  50. metadata +145 -110
  51. data/generators/flow/flow_generator.rb +0 -57
  52. data/generators/flow/templates/flow.rb.erb +0 -9
  53. data/generators/page/page_generator.rb +0 -58
  54. data/generators/page/templates/page.rb.erb +0 -8
  55. data/generators/partial/partial_generator.rb +0 -57
  56. data/generators/partial/templates/partial.rb.erb +0 -7
  57. data/generators/site/site_generator.rb +0 -57
  58. data/generators/site/templates/site.rb.erb +0 -10
  59. data/generators/site/templates/site.yml.erb +0 -3
  60. data/lib/app_generators/taza/taza_generator.rb +0 -76
  61. data/lib/app_generators/taza/templates/config.yml.erb +0 -3
  62. data/lib/app_generators/taza/templates/rakefile.rb.erb +0 -13
  63. data/spec/flow_generator_spec.rb +0 -47
  64. data/spec/page_generator_spec.rb +0 -56
  65. data/spec/partial_generator_spec.rb +0 -38
  66. data/spec/project_generator_spec.rb +0 -42
  67. data/spec/site_generator_spec.rb +0 -56
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c05746f8d89bc25143d61f5dc71b933368cd5917
4
+ data.tar.gz: 16c6e84a4298dcf6ad1b30bc1f8ebff60d60998c
5
+ SHA512:
6
+ metadata.gz: 85d2b1132eea00c081bbd6689bda7eb2f279556b38d6dee5919bfb56d71b2a6b271c1196a41ec6ae2a1c3fe89a423f214de5b5e3095c82b760aa69dc5e3566aa
7
+ data.tar.gz: e48081c6fa2992dfd2cab3f09f2ecbd6ba8f02295ae747ccc7486dffce969c30dc8e22e33bebd9dd80022dde7bd751a3f30883227362dd9a9fab32e81abe277c
data/.gitignore CHANGED
@@ -3,3 +3,4 @@
3
3
  Gemfile.lock
4
4
  pkg/*
5
5
  .idea/
6
+ .rspec
data/.travis.yml CHANGED
@@ -1,59 +1,14 @@
1
+ language: ruby
1
2
  script: "bundle exec rspec spec"
2
3
  rvm:
3
- - 1.8.7
4
- - 1.9.2
5
4
  - 1.9.3
5
+ - 2.0.0
6
+ - 2.1.0
6
7
  - ruby-head
7
- - ree
8
- - jruby
8
+ - jruby-19mode
9
+ - jruby-head
9
10
  - rbx
10
- env:
11
- -
12
- - JRUBY_OPTS="--1.8"
13
- - JRUBY_OPTS="--1.9"
14
- matrix:
15
- exclude:
16
- # exclude 1.8.7
17
- - rvm: 1.8.7
18
- env: JRUBY_OPTS="--1.8"
19
- - rvm: 1.8.7
20
- env: JRUBY_OPTS="--1.9"
21
-
22
- # exclude 1.9.2
23
- - rvm: 1.9.2
24
- env: JRUBY_OPTS="--1.8"
25
- - rvm: 1.9.2
26
- env: JRUBY_OPTS="--1.9"
27
-
28
- # exclude 1.9.3
29
- - rvm: 1.9.3
30
- env: JRUBY_OPTS="--1.8"
31
- - rvm: 1.9.3
32
- env: JRUBY_OPTS="--1.9"
33
-
34
- # exclude ruby-head
35
- - rvm: ruby-head
36
- env: JRUBY_OPTS="--1.8"
37
- - rvm: ruby-head
38
- env: JRUBY_OPTS="--1.9"
39
-
40
- # exclude ree
41
- - rvm: ree
42
- env: JRUBY_OPTS="--1.8"
43
- - rvm: ree
44
- env: JRUBY_OPTS="--1.9"
45
-
46
- # exclude jruby
47
- - rvm: jruby
48
- env:
49
- - rvm: jruby
50
- env: JRUBY_OPTS="--1.9"
51
-
52
- # exclude rbx
53
- - rvm: rbx
54
- env: JRUBY_OPTS="--1.8"
55
- - rvm: rbx
56
- env: JRUBY_OPTS="--1.9"
57
11
  notifications:
58
12
  email:
59
13
  - pnascimento@gmail.com
14
+ - oriekenjr@gmail.com
data/README.md CHANGED
@@ -1,5 +1,6 @@
1
1
  #taza
2
2
  [![Build Status](https://secure.travis-ci.org/hammernight/taza.png)](http://travis-ci.org/hammernight/taza)
3
+ [![Code Climate](https://codeclimate.com/github/hammernight/taza.png)](https://codeclimate.com/github/hammernight/taza)
3
4
 
4
5
  * https://github.com/hammernight/taza
5
6
  * Wiki: http://github.com/scudco/taza/wikis
data/bin/taza CHANGED
@@ -1,17 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
+ require_relative '../lib/taza/generators/taza_generators'
2
3
 
3
- require 'rubygems'
4
- require 'rubigen'
5
-
6
- if %w(-v --version).include? ARGV.first
7
- require 'taza'
8
- puts "#{File.basename($0)} #{Taza::VERSION}"
9
- exit(0)
10
- end
11
-
12
- require 'rubigen/scripts/generate'
13
- source = RubiGen::PathSource.new(:application,
14
- File.join(File.dirname(__FILE__), "../lib/app_generators"))
15
- RubiGen::Base.reset_sources
16
- RubiGen::Base.append_sources source
17
- RubiGen::Scripts::Generate.new.run(ARGV, :generator => 'taza')
4
+ Taza::TazaGenerators.start
data/lib/taza.rb CHANGED
@@ -14,6 +14,13 @@ require 'extensions/hash'
14
14
  require 'extensions/array'
15
15
  require 'formatters/failing_examples_formatter'
16
16
 
17
+ #generators
18
+ require_relative 'taza/generators/project_generator'
19
+ require_relative 'taza/generators/site_generator'
20
+ require_relative 'taza/generators/page_generator'
21
+ require_relative 'taza/generators/partial_generator'
22
+ require_relative 'taza/generators/flow_generator'
23
+
17
24
  module ForwardInitialization
18
25
  module ClassMethods
19
26
  def new(*args,&block)
@@ -0,0 +1,17 @@
1
+ require 'thor'
2
+ require 'active_support/all'
3
+
4
+ module Taza
5
+ class FlowGenerator < PartialGenerator
6
+
7
+ desc "This will generate your Taza flow. Example: taza flow checkout foo"
8
+ def flow
9
+ partial
10
+ end
11
+
12
+ private
13
+ def create_partial
14
+ template('templates/flow/flow.rb.tt', "lib/sites/#{name}/flows/#{partial_name}.rb")
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,29 @@
1
+ require 'thor'
2
+ require 'active_support/all'
3
+
4
+ module Taza
5
+ class PageGenerator < Thor::Group
6
+ include Thor::Actions
7
+
8
+ argument :page_name
9
+ argument :site_name
10
+
11
+ def self.source_root
12
+ File.dirname(__FILE__)
13
+ end
14
+
15
+ desc "This will generate a Taza page for your site. Example: taza page home foo"
16
+ def page
17
+ name = site_name.underscore
18
+
19
+ if File.directory?("lib/sites/#{name}")
20
+ template('templates/page/page.rb.tt', "lib/sites/#{name}/pages/#{page_name}_page.rb")
21
+ template('templates/page/page_spec.rb.tt', "spec/isolation/#{page_name}_page_spec.rb")
22
+ else
23
+ say "No such site #{name} exists! ", :red
24
+ say "Please run 'taza create #{name}'", :green
25
+ end
26
+
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,33 @@
1
+ require 'thor'
2
+ require 'active_support/all'
3
+
4
+ module Taza
5
+ class PartialGenerator < Thor::Group
6
+ attr_reader :name
7
+ include Thor::Actions
8
+
9
+ argument :partial_name
10
+ argument :site_name
11
+
12
+ def self.source_root
13
+ File.dirname(__FILE__)
14
+ end
15
+
16
+ desc "This will generate your Taza partial. Example: taza partial navigation foo"
17
+ def partial
18
+ @name = site_name.underscore
19
+
20
+ if File.directory?("lib/sites/#{name}")
21
+ create_partial
22
+ else
23
+ say "No such site #{name} exists! ", :red
24
+ say "Please run 'taza create #{name}'", :green
25
+ end
26
+ end
27
+
28
+ private
29
+ def create_partial
30
+ template('templates/partial/partial.rb.tt', "lib/sites/#{name}/pages/partials/#{partial_name}.rb")
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,30 @@
1
+ require 'thor'
2
+ require 'active_support/all'
3
+
4
+ module Taza
5
+ class ProjectGenerator < Thor::Group
6
+ include Thor::Actions
7
+
8
+ argument :site_name
9
+ argument :driver, :default => 'watir-webdriver'
10
+ argument :browser, :default => 'firefox'
11
+
12
+ def self.source_root
13
+ File.dirname(__FILE__)
14
+ end
15
+
16
+ desc "This creates the Taza project structure. Example taza create foo"
17
+ def create
18
+ template('templates/project/Gemfile.tt', 'Gemfile') unless File.exists? 'Gemfile'
19
+ template('templates/project/Rakefile.tt', 'Rakefile') unless File.exists? 'Rakefile'
20
+ template('templates/project/config.yml.tt', 'config/config.yml') unless File.exists? 'config/config.yml'
21
+ empty_directory 'lib/sites'
22
+ empty_directory 'spec'
23
+ template('templates/project/spec_helper.rb.tt', 'spec/spec_helper.rb') unless File.exists? 'spec/spec_helper.rb'
24
+ empty_directory 'spec/isolation'
25
+ empty_directory 'spec/integration'
26
+ empty_directory 'bin'
27
+ template('templates/project/taza.tt', 'bin/taza') unless File.exists? 'bin/taza'
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,26 @@
1
+ require 'thor'
2
+ require 'active_support/all'
3
+
4
+ module Taza
5
+ class SiteGenerator < Thor::Group
6
+ include Thor::Actions
7
+
8
+ argument :site_name
9
+
10
+ def self.source_root
11
+ File.dirname(__FILE__)
12
+ end
13
+
14
+ desc "This will generate your Taza site. Example: taza site foo"
15
+ def site
16
+ name = site_name.underscore
17
+
18
+ template('templates/site/site.yml.tt', "config/#{name}.yml")
19
+ template('templates/site/site.rb.tt', "lib/sites/#{name}.rb")
20
+ empty_directory "lib/sites/#{name}"
21
+ empty_directory "lib/sites/#{name}/flows"
22
+ empty_directory "lib/sites/#{name}/pages"
23
+ empty_directory "lib/sites/#{name}/pages/partials"
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,18 @@
1
+ require 'thor'
2
+
3
+ require_relative 'flow_generator'
4
+ require_relative 'partial_generator'
5
+ require_relative 'page_generator'
6
+ require_relative 'site_generator'
7
+ require_relative 'project_generator'
8
+
9
+ module Taza
10
+ class TazaGenerators < Thor
11
+
12
+ register(Taza::ProjectGenerator, 'create', "create SITE_NAME", 'This creates the Taza structure. Example: taza create foo')
13
+ register(Taza::SiteGenerator, 'site', 'site SITE_NAME', 'This will generate your Taza site. Example: taza site foo')
14
+ register(Taza::PageGenerator, 'page', 'page PAGE_NAME SITE_NAME', 'This will generate your Taza page. Example: taza page checkout foo')
15
+ register(Taza::PartialGenerator, 'partial', 'partial PARTIAL_NAME SITE_NAME', 'This will generate your Taza partial. Example: taza partial navigation foo')
16
+ register(Taza::FlowGenerator, 'flow', 'flow FLOW_NAME SITE_NAME', 'This will generate your Taza flow. Example: taza flow checkout foo')
17
+ end
18
+ end
@@ -0,0 +1,9 @@
1
+ require 'rubygems'
2
+
3
+ module <%= site_name.underscore.camelize %>
4
+ class <%= site_name.underscore.camelize %> < ::Taza::Site
5
+ def <%= partial_name.underscore %>_flow(params={})
6
+
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ require 'rubygems'
2
+ require 'taza/page'
3
+
4
+ module <%= site_name.underscore.camelize %>
5
+ class <%= page_name.underscore.camelize %>Page < ::Taza::Page
6
+
7
+ end
8
+ end
@@ -1,8 +1,8 @@
1
1
  require 'spec_helper'
2
2
  require '<%= site_name.underscore %>'
3
3
 
4
- describe "<%= name.camelize %>Page" do
4
+ describe "<%= page_name.camelize %>Page" do
5
5
  it "should fail because you haven't written any tests yet" do
6
- false.should be_true
6
+ expect(false).to be_true
7
7
  end
8
8
  end
@@ -0,0 +1,8 @@
1
+ require 'rubygems'
2
+ require 'taza/page'
3
+
4
+ module <%= site_name.underscore.camelize %>
5
+ class <%= partial_name.underscore.camelize %> < ::Taza::Page
6
+
7
+ end
8
+ end
@@ -1,4 +1,4 @@
1
- source :rubygems
1
+ source 'https://rubygems.org'
2
2
 
3
3
  gem 'taza', '<%= Taza::VERSION %>'
4
4
 
@@ -0,0 +1,13 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'taza/tasks'
4
+
5
+ Taza::Rake::Tasks.new do |t|
6
+ file_hole = FileUtils.mkdir_p "artifacts/#{Time.now.to_i}"
7
+ t.spec_opts = [
8
+ "--require taza",
9
+ "--format html --out #{file_hole}/index.html",
10
+ "--format p",
11
+ "--format FailingExamplesFormatter --out #{file_hole}/failing_examples.txt"
12
+ ]
13
+ end
@@ -0,0 +1,3 @@
1
+ ---
2
+ browser: <%= browser %>
3
+ driver: <%= driver.gsub('-', '_') %>
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require_relative 'lib/generators/taza_generators'
3
+ Taza::TazaGenerators.start
@@ -0,0 +1,10 @@
1
+ require 'rubygems'
2
+ require 'taza'
3
+
4
+ module <%= site_name.underscore.camelize %>
5
+ include ForwardInitialization
6
+
7
+ class <%= site_name.underscore.camelize %> < ::Taza::Site
8
+
9
+ end
10
+ end
@@ -0,0 +1,3 @@
1
+ ---
2
+ isolation:
3
+ :url: http://www.<%= site_name %>.com
data/lib/taza/page.rb CHANGED
@@ -32,6 +32,10 @@ module Taza
32
32
  # end
33
33
  # homepage.foo.click
34
34
  def self.element(name,&block)
35
+ if name.nil?
36
+ raise ElementError, "Element name can not be nil"
37
+ end
38
+
35
39
  if !@module.nil?
36
40
  self.elements[@module] = Hash.new if self.elements[@module].nil?
37
41
  self.elements[@module] = self.elements[@module].merge({ name => block })
@@ -42,7 +46,7 @@ module Taza
42
46
  end
43
47
  end
44
48
 
45
- # A filter for elemenet(s) on a page
49
+ # A filter for element(s) on a page
46
50
  # Example:
47
51
  # class HomePage < Taza::Page
48
52
  # element(:foo) {browser.element_by_xpath('some xpath')}
@@ -72,6 +76,7 @@ module Taza
72
76
  end
73
77
 
74
78
  def self.page_module(name,&block)
79
+ puts "Warning: page_module is deprecated; use a partial instead."
75
80
  @module = name
76
81
  yield(block)
77
82
  @module = nil
@@ -91,7 +96,7 @@ module Taza
91
96
 
92
97
  def add_element_methods(page_module = nil) # :nodoc:
93
98
  self.class.elements.each do |element_name,element_block|
94
- if (element_block.is_a?(Hash) && !page_module.nil? && page_module==element_name)
99
+ if page_module == element_name
95
100
  element_block.each do |key,value|
96
101
  filters = self.class.filters[element_name] + self.class.filters[:all] + self.class.filters[key]
97
102
  add_element_method(:filters => filters, :element_name => key, :element_block => value)
data/lib/taza/site.rb CHANGED
@@ -60,7 +60,7 @@ module Taza
60
60
  @browser = Browser.create(config)
61
61
  @i_created_browser = true
62
62
  end
63
- @browser.goto(params[:url] || config[:url])
63
+ @browser.goto(params[:url] || config[:url]) unless params[:url] == false
64
64
  execute_block_and_close_browser(browser,&block) if block_given?
65
65
  end
66
66
 
data/lib/taza/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Taza
2
- VERSION = "0.9.1.2"
2
+ VERSION = "0.9.2.0"
3
3
  end