taza 0.9.1.2 → 0.9.2.0

Sign up to get free protection for your applications and to get access to all the features.
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