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.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/.travis.yml +6 -51
- data/README.md +1 -0
- data/bin/taza +2 -15
- data/lib/taza.rb +7 -0
- data/lib/taza/generators/flow_generator.rb +17 -0
- data/lib/taza/generators/page_generator.rb +29 -0
- data/lib/taza/generators/partial_generator.rb +33 -0
- data/lib/taza/generators/project_generator.rb +30 -0
- data/lib/taza/generators/site_generator.rb +26 -0
- data/lib/taza/generators/taza_generators.rb +18 -0
- data/lib/taza/generators/templates/flow/flow.rb.tt +9 -0
- data/lib/taza/generators/templates/page/page.rb.tt +8 -0
- data/{generators/page/templates/functional_page_spec.rb.erb → lib/taza/generators/templates/page/page_spec.rb.tt} +2 -2
- data/lib/taza/generators/templates/partial/partial.rb.tt +8 -0
- data/lib/{app_generators/taza/templates/Gemfile.erb → taza/generators/templates/project/Gemfile.tt} +1 -1
- data/lib/taza/generators/templates/project/Rakefile.tt +13 -0
- data/lib/taza/generators/templates/project/config.yml.tt +3 -0
- data/lib/{app_generators/taza/templates → taza/generators/templates/project}/console.cmd.erb +0 -0
- data/lib/{app_generators/taza/templates → taza/generators/templates/project}/console.erb +0 -0
- data/lib/{app_generators/taza/templates/spec_helper.rb.erb → taza/generators/templates/project/spec_helper.rb.tt} +0 -0
- data/lib/taza/generators/templates/project/taza.tt +3 -0
- data/lib/taza/generators/templates/site/site.rb.tt +10 -0
- data/lib/taza/generators/templates/site/site.yml.tt +3 -0
- data/lib/taza/page.rb +7 -2
- data/lib/taza/site.rb +1 -1
- data/lib/taza/version.rb +1 -1
- data/spec/generators/flow_generator_spec.rb +26 -0
- data/spec/generators/page_generator_spec.rb +53 -0
- data/spec/generators/partial_generator_spec.rb +26 -0
- data/spec/generators/project_generator_spec.rb +76 -0
- data/spec/generators/site_generator_spec.rb +57 -0
- data/spec/{taza_bin_spec.rb → generators/taza_bin_spec.rb} +0 -0
- data/spec/spec_helper.rb +27 -2
- data/spec/{array_spec.rb → taza/array_spec.rb} +0 -0
- data/spec/{browser_spec.rb → taza/browser_spec.rb} +5 -3
- data/spec/{entity_spec.rb → taza/entity_spec.rb} +0 -0
- data/spec/{fixture_spec.rb → taza/fixture_spec.rb} +2 -1
- data/spec/{fixtures_spec.rb → taza/fixtures_spec.rb} +0 -0
- data/spec/{hash_spec.rb → taza/hash_spec.rb} +0 -0
- data/spec/{page_module_spec.rb → taza/page_module_spec.rb} +0 -0
- data/spec/{page_spec.rb → taza/page_spec.rb} +5 -1
- data/spec/{settings_spec.rb → taza/settings_spec.rb} +12 -12
- data/spec/{site_fixtures_spec.rb → taza/site_fixtures_spec.rb} +0 -0
- data/spec/{site_spec.rb → taza/site_spec.rb} +8 -11
- data/spec/{string_spec.rb → taza/string_spec.rb} +0 -0
- data/spec/{taza_tasks_spec.rb → taza/taza_tasks_spec.rb} +8 -9
- data/taza.gemspec +5 -6
- metadata +145 -110
- data/generators/flow/flow_generator.rb +0 -57
- data/generators/flow/templates/flow.rb.erb +0 -9
- data/generators/page/page_generator.rb +0 -58
- data/generators/page/templates/page.rb.erb +0 -8
- data/generators/partial/partial_generator.rb +0 -57
- data/generators/partial/templates/partial.rb.erb +0 -7
- data/generators/site/site_generator.rb +0 -57
- data/generators/site/templates/site.rb.erb +0 -10
- data/generators/site/templates/site.yml.erb +0 -3
- data/lib/app_generators/taza/taza_generator.rb +0 -76
- data/lib/app_generators/taza/templates/config.yml.erb +0 -3
- data/lib/app_generators/taza/templates/rakefile.rb.erb +0 -13
- data/spec/flow_generator_spec.rb +0 -47
- data/spec/page_generator_spec.rb +0 -56
- data/spec/partial_generator_spec.rb +0 -38
- data/spec/project_generator_spec.rb +0 -42
- 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
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
|
-
-
|
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
|
-
|
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
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require '<%= site_name.underscore %>'
|
3
3
|
|
4
|
-
describe "<%=
|
4
|
+
describe "<%= page_name.camelize %>Page" do
|
5
5
|
it "should fail because you haven't written any tests yet" do
|
6
|
-
false.
|
6
|
+
expect(false).to be_true
|
7
7
|
end
|
8
8
|
end
|
@@ -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
|
data/lib/{app_generators/taza/templates → taza/generators/templates/project}/console.cmd.erb
RENAMED
File without changes
|
File without changes
|
File without changes
|
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
|
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
|
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