lazycuke 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZTllM2RkYmNmOWE0NGY2NTA4NDI4ZmRjZDU5NzZlOWZhODhlODQ3OA==
5
- data.tar.gz: !binary |-
6
- YzQwNjU2M2U3ZjcxNDJiYzcyZjNjOGM1OGY3ZDM3NmZjOWFmODhhZg==
2
+ SHA1:
3
+ metadata.gz: 2b4031294ec4291ce239a8c7bfa5c6e3b9b7ec26
4
+ data.tar.gz: 3b589fa8d52b7e5fca086b421b76f8354cfe833f
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- OWUwNTI2ODAzZjNhYTliNDg0ZGY1ZDU5YWM2ZmI0MDNmNjE2YWI0NmMxMTQw
10
- NGViOGM4N2Q1MWE1YmYwNmUyNWI4ZDQ3NjQwMTkyNjI1NDc5ZDRkY2Q2NmRl
11
- NmI3YTQyZTI4MDg1NjYzODBiMzU3OWE0NzdlYmM5OGZjNDdhNzI=
12
- data.tar.gz: !binary |-
13
- YjI2YmFiNDI0YzA2MWE0MjE3MGJiOWE2NjNmNjM4ZDVjYWJkOWU2ODNkZDVm
14
- MGIyYTM5OWI0YjcxMDljYzhmOTRhNDNjMzdiNTBhMjYwYTJjZTViNWUxNTRm
15
- MGQ3YTg4MmYyOTM5NjRiMWUyOTAwMDNiMjlmM2VmNGEzM2I2MDY=
6
+ metadata.gz: 56fa40819b627f993582c187740871d08c0936b208df9b6fdc0f318b4505c5f87ae27b44635d1959a8fc0135d1c1e87ed201623648eae3792f7ec6583ba0db37
7
+ data.tar.gz: 644fcee58a5461190e655dc4a78fa5a0f3cb1597ef72441d81141db23c360f9bcfd9428f69b3f1868b41932afda75a80c354bd3db0035108b954d2d33da1934e
@@ -0,0 +1,13 @@
1
+ def lazycuke_scaffold
2
+ if File.exists?(@features_dir)
3
+ puts "Delete existing feature directoty"
4
+ exit 1
5
+ end
6
+
7
+ FileUtils.cp_r(@source_dir, @features_dir)
8
+
9
+ msg("Info") do
10
+ puts "features subdirectory created. \n"
11
+ end
12
+
13
+ end
@@ -0,0 +1,51 @@
1
+ require 'tempfile'
2
+ require 'json'
3
+ require "rubygems"
4
+
5
+ def msg(title, &block)
6
+ puts "\n" + "-"*10 + title + "-"*10
7
+ block.call
8
+ puts "-"*10 + "-------" + "-"*10 + "\n"
9
+ end
10
+
11
+ def print_usage
12
+ puts <<EOF
13
+
14
+ Usage: lazycuke <command-name> [parameters] [options]
15
+
16
+ <command-name> can be one of
17
+ help
18
+ prints more detailed help information.
19
+ gen
20
+ generate a features folder structure.
21
+ version
22
+ prints the gem version
23
+
24
+ <options> can be
25
+ -v, --verbose Turns on verbose logging
26
+ EOF
27
+ end
28
+
29
+ def print_help
30
+ puts <<EOF
31
+
32
+ Usage: lazycuke <command-name> [parameters] [options]
33
+
34
+ <command-name> can be one of
35
+ help
36
+ gen
37
+ version
38
+
39
+ Commands:
40
+ help : prints more detailed help information.
41
+
42
+ gen : creates a skeleton features dir. This is usually used once when
43
+ setting up selnium-cucumber to ensure that the features folder contains
44
+ the right step definitions and environment to run with cucumber.
45
+
46
+ version : prints the gem version
47
+
48
+ <Options>
49
+ -v, --verbose Turns on verbose logging
50
+ EOF
51
+ end
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative 'helper.rb'
4
+ require_relative 'generate.rb'
5
+ require 'lazycuke/version'
6
+
7
+ @features_dir = File.join(FileUtils.pwd, "features")
8
+ @support_dir = File.join(@features_dir, "support")
9
+ @source_dir = File.join(File.dirname(__FILE__), '..', 'scaffold')
10
+
11
+ if (ARGV.length == 0)
12
+ print_usages
13
+ else
14
+ cmd = ARGV.shift
15
+
16
+ if cmd == "help"
17
+ print_help
18
+ elsif cmd == "gen"
19
+ lazycuke_scaffold
20
+ elsif cmd == "version"
21
+ puts Lazycuke::VERSION
22
+ else
23
+ print_usage
24
+ end
25
+ end
Binary file
@@ -1,7 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  $:.push File.expand_path("../lib", __FILE__)
3
- lib = File.expand_path('../lib', __FILE__)
4
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
3
  require 'lazycuke/version'
6
4
 
7
5
  Gem::Specification.new do |spec|
@@ -15,16 +13,15 @@ Gem::Specification.new do |spec|
15
13
  spec.license = "MIT"
16
14
  spec.date = Time.now
17
15
  spec.platform = Gem::Platform::RUBY
16
+ spec.files = Dir['lib/**/*']
17
+ spec.files += Dir['bin/*']
18
+ spec.files += Dir['scaffold/**/*']
19
+ spec.require_paths = ['lib']
18
20
  spec.executables = 'lazycuke'
19
21
  spec.files = `git ls-files`.split("\n")
20
22
  spec.test_files = `git ls-files -- {features}/*`.split("\n")
21
23
  spec.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
22
- spec.require_paths = ["lib"]
23
- spec.add_development_dependency "bundler", "~> 1.7"
24
- spec.add_development_dependency "rake", "~> 10.0"
25
- spec.add_dependency "thor"
26
- spec.add_development_dependency "aruba"
27
- spec.add_development_dependency "bluecloth"
24
+
28
25
  spec.required_ruby_version = '>= 1.9.3'
29
26
  spec.add_runtime_dependency 'cucumber', '~> 1.3', '>= 1.3.18'
30
27
  spec.add_runtime_dependency 'selenium-webdriver', '~> 2.44.0', '>= 2.41.0'
@@ -1,7 +1 @@
1
1
  Dir[File.dirname(__FILE__) + '/lazycuke/*.rb'].each {|file| require file }
2
-
3
- require "lazycuke/version"
4
-
5
- module Lazycuke
6
- autoload :App, "lazycuke/app"
7
- end
@@ -0,0 +1,80 @@
1
+ require 'thor'
2
+ require 'lazycuke/version'
3
+
4
+ module Lazycuke
5
+ class App < Thor
6
+ include Thor::Actions
7
+ map %w(-v -V --version) => :version
8
+ def self.source_root
9
+ File.expand_path('../../scaffold', File.dirname(__FILE__))
10
+ end
11
+
12
+ desc "version", "current version"
13
+ def version
14
+ say Lazycuke::VERSION
15
+ end
16
+
17
+ desc "setup", "Set up cucumber framework with all the directories"
18
+ def setup
19
+ generate_rakefile
20
+ copy_file "features/test.feature"
21
+ copy_file "Gemfile"
22
+ copy_file "cucumber.yml"
23
+ copy_file "README.md"
24
+ copy_file "features/support/env.rb"
25
+ copy_file "features/support/hooks.rb"
26
+ copy_file "features/step_definitions/steps.rb"
27
+ init_gitignore
28
+ end
29
+
30
+ private
31
+
32
+ def project_name
33
+ destination_root.split(/\/|\\/).last
34
+ end
35
+
36
+ def genarate_gemfile
37
+ unless destination_file_exists?("Gemfile")
38
+ add_file "Gemfile"
39
+ append_file "Gemfile" do
40
+ "source 'http://rubygems.org'\n\n" +
41
+ "gem 'rake'\n"
42
+ "gem 'nokogiri', '1.6.1'\n"
43
+ end
44
+ end
45
+ end
46
+
47
+ def generate_rakefile
48
+ unless destination_file_exists?("Rakefile")
49
+ add_file "Rakefile"
50
+ append_file "Rakefile" do
51
+ "require 'rubygems'\n" +
52
+ "require 'bundler'\n" +
53
+ "require 'bundler/setup'\n\n"
54
+ end
55
+ end
56
+ end
57
+
58
+ def init_gitignore
59
+ add_file ".gitignore" unless destination_file_exists?(".gitignore")
60
+ ensure_eof_newline(".gitignore")
61
+ end
62
+
63
+ def destination_file_exists?(filename)
64
+ File.exist?(File.join(destination_root, filename))
65
+ end
66
+
67
+ def insert_gem(gem_name)
68
+ ensure_eof_newline("Gemfile")
69
+ append_file "Gemfile", "gem '#{gem_name}'\n"
70
+ end
71
+
72
+ def add_task(the_task)
73
+ append_file "Rakefile", "\n\n#{the_task}\n"
74
+ end
75
+
76
+ def ensure_eof_newline(filename)
77
+ gsub_file(filename, /([^\n])\z/, "\\1\n")
78
+ end
79
+ end
80
+ end
File without changes
@@ -1,3 +1,3 @@
1
1
  module Lazycuke
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -0,0 +1,6 @@
1
+ require 'rubygems'
2
+ require 'selenium-webdriver'
3
+ require 'open-uri'
4
+ require 'rbconfig'
5
+ # require 'appium_lib'
6
+ include RbConfig
@@ -0,0 +1,46 @@
1
+ require 'net/https'
2
+ require_relative 'required_files'
3
+
4
+ WAIT = Selenium::WebDriver::Wait.new(:timeout => 30)
5
+
6
+
7
+ class Failure < Exception
8
+ end
9
+
10
+ def visit(page)
11
+ $driver.get(page)
12
+ end
13
+
14
+ def valid_locator_type? type
15
+ %w(id class css name xpath).include? type
16
+ end
17
+
18
+ def validate_locator type
19
+ raise "Invalid locator type - #{type}" unless valid_locator_type? type
20
+ end
21
+
22
+ def click(locator_type, locator_name)
23
+ WAIT.until { $driver.find_element(:"#{locator_type}" => "#{locator_name}") }.click
24
+ end
25
+
26
+ def displayed(locator_type, locator_name)
27
+ WAIT.until{ $driver.find_element(:"#{locator_type}" => "#{locator_name}") }.displayed?
28
+ end
29
+
30
+ def check_element_on_page(locator_type, locator_name, scenario)
31
+ if scenario
32
+ if !displayed(locator_type, locator_name)
33
+ raise Failure, 'Element Not Present'
34
+ end
35
+ else
36
+ begin
37
+ if displayed(locator_type, locator_name)
38
+ raise 'Present'
39
+ end
40
+ rescue Exception => e
41
+ if e.message == 'Present'
42
+ raise Failure, 'Element Present'
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,14 @@
1
+ require_relative 'web/web_methods'
2
+
3
+ Given(/^I am on "([^\"]*)"$/)do |link|
4
+ visit(link)
5
+ end
6
+
7
+ When(/^I click on element having (.+) "(.*?)"$/) do |type, access_name|
8
+ validate_locator type
9
+ click(type, access_name)
10
+ end
11
+
12
+ Then(/^link having text "(.*?)" should\s*((?:not)?)\s+be present$/) do |access_name, present|
13
+ check_element_on_page('link', access_name, present.empty?)
14
+ end
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+ gem 'nokogiri', '1.6.1'
3
+ gem 'lazycuke'
@@ -0,0 +1,12 @@
1
+ BDD Scenarios
2
+ ========================
3
+
4
+ ## Install
5
+
6
+ Your description to install project
7
+
8
+ $ bundle install
9
+
10
+ Make sure you are using corect ruby version.
11
+
12
+ ## Usage
@@ -0,0 +1,2 @@
1
+ default: -p selenium
2
+ html_report: --format pretty --format html --out=features_report.html
@@ -0,0 +1 @@
1
+ require 'lazycuke'
@@ -0,0 +1,51 @@
1
+ require 'rubygems'
2
+ require 'lazycuke'
3
+
4
+
5
+ $browser_type = ENV['BROWSER'] || 'ff'
6
+ $platform = ENV['PLATFORM'] || 'desktop'
7
+ $os_version = ENV['OS_VERSION']
8
+ $device_name = ENV['DEVICE_NAME']
9
+ $udid = ENV['UDID']
10
+ $app_path = ENV['APP_PATH']
11
+
12
+
13
+ validate_parameters $platform, $browser_type, $app_path
14
+
15
+ # If platform is android or ios create driver instance for mobile browser
16
+ if $platform == 'android' or $platform == 'iOS'
17
+
18
+ if $browser_type == 'native'
19
+ $browser_type = "Browser"
20
+ end
21
+
22
+ if $platform == 'android'
23
+ $device_name, $os_version = get_device_info
24
+ end
25
+
26
+ desired_caps = {
27
+ caps: {
28
+ platformName: $platform,
29
+ browserName: $browser_type,
30
+ versionNumber: $os_version,
31
+ deviceName: $device_name,
32
+ udid: $udid,
33
+ app: ".//#{$app_path}"
34
+ },
35
+ }
36
+
37
+ begin
38
+ $driver = Appium::Driver.new(desired_caps).start_driver
39
+ rescue Exception => e
40
+ puts e.message
41
+ Process.exit(0)
42
+ end
43
+ else # else create driver instance for desktop browser
44
+ begin
45
+ $driver = Selenium::WebDriver.for(:"#{$browser_type}")
46
+ $driver.manage().window().maximize()
47
+ rescue Exception => e
48
+ puts e.message
49
+ Process.exit(0)
50
+ end
51
+ end
File without changes
@@ -0,0 +1,6 @@
1
+ Feature: Test feature
2
+
3
+
4
+ Scenario: Test Lazycuke
5
+
6
+ Given I am on "www.google.com"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lazycuke
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shashikant86
@@ -10,76 +10,6 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2015-04-03 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ~>
18
- - !ruby/object:Gem::Version
19
- version: '1.7'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ~>
25
- - !ruby/object:Gem::Version
26
- version: '1.7'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ~>
32
- - !ruby/object:Gem::Version
33
- version: '10.0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ~>
39
- - !ruby/object:Gem::Version
40
- version: '10.0'
41
- - !ruby/object:Gem::Dependency
42
- name: thor
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ! '>='
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: aruba
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ! '>='
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: bluecloth
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ! '>='
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ! '>='
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
13
  - !ruby/object:Gem::Dependency
84
14
  name: cucumber
85
15
  requirement: !ruby/object:Gem::Requirement
@@ -87,7 +17,7 @@ dependencies:
87
17
  - - ~>
88
18
  - !ruby/object:Gem::Version
89
19
  version: '1.3'
90
- - - ! '>='
20
+ - - '>='
91
21
  - !ruby/object:Gem::Version
92
22
  version: 1.3.18
93
23
  type: :runtime
@@ -97,7 +27,7 @@ dependencies:
97
27
  - - ~>
98
28
  - !ruby/object:Gem::Version
99
29
  version: '1.3'
100
- - - ! '>='
30
+ - - '>='
101
31
  - !ruby/object:Gem::Version
102
32
  version: 1.3.18
103
33
  - !ruby/object:Gem::Dependency
@@ -107,7 +37,7 @@ dependencies:
107
37
  - - ~>
108
38
  - !ruby/object:Gem::Version
109
39
  version: 2.44.0
110
- - - ! '>='
40
+ - - '>='
111
41
  - !ruby/object:Gem::Version
112
42
  version: 2.41.0
113
43
  type: :runtime
@@ -117,7 +47,7 @@ dependencies:
117
47
  - - ~>
118
48
  - !ruby/object:Gem::Version
119
49
  version: 2.44.0
120
- - - ! '>='
50
+ - - '>='
121
51
  - !ruby/object:Gem::Version
122
52
  version: 2.41.0
123
53
  - !ruby/object:Gem::Dependency
@@ -127,7 +57,7 @@ dependencies:
127
57
  - - ~>
128
58
  - !ruby/object:Gem::Version
129
59
  version: 4.1.0
130
- - - ! '>='
60
+ - - '>='
131
61
  - !ruby/object:Gem::Version
132
62
  version: 4.0.0
133
63
  type: :runtime
@@ -137,14 +67,17 @@ dependencies:
137
67
  - - ~>
138
68
  - !ruby/object:Gem::Version
139
69
  version: 4.1.0
140
- - - ! '>='
70
+ - - '>='
141
71
  - !ruby/object:Gem::Version
142
72
  version: 4.0.0
143
73
  description: Test automation framework to be used with Ruby Cucumber, Selenium and
144
74
  mobile automation framework Appium.
145
75
  email:
146
76
  - shashikant.jagtap@aol.co.uk
147
- executables: []
77
+ executables:
78
+ - generate.rb
79
+ - helper.rb
80
+ - lazycuke
148
81
  extensions: []
149
82
  extra_rdoc_files: []
150
83
  files:
@@ -153,9 +86,25 @@ files:
153
86
  - LICENSE.txt
154
87
  - README.md
155
88
  - Rakefile
89
+ - bin/generate.rb
90
+ - bin/helper.rb
91
+ - bin/lazycuke
92
+ - lazycuke-0.0.6.gem
156
93
  - lazycuke.gemspec
157
94
  - lib/lazycuke.rb
95
+ - lib/lazycuke/app.rb
96
+ - lib/lazycuke/mobile_steps.rb
158
97
  - lib/lazycuke/version.rb
98
+ - lib/lazycuke/web/required_files.rb
99
+ - lib/lazycuke/web/web_methods.rb
100
+ - lib/lazycuke/web_steps.rb
101
+ - scaffold/Gemfile
102
+ - scaffold/README.md
103
+ - scaffold/cucumber.yml
104
+ - scaffold/step_definitions/steps.rb
105
+ - scaffold/support/env.rb
106
+ - scaffold/support/hooks.rb
107
+ - scaffold/test.feature
159
108
  homepage: ''
160
109
  licenses:
161
110
  - MIT
@@ -166,19 +115,18 @@ require_paths:
166
115
  - lib
167
116
  required_ruby_version: !ruby/object:Gem::Requirement
168
117
  requirements:
169
- - - ! '>='
118
+ - - '>='
170
119
  - !ruby/object:Gem::Version
171
120
  version: 1.9.3
172
121
  required_rubygems_version: !ruby/object:Gem::Requirement
173
122
  requirements:
174
- - - ! '>='
123
+ - - '>='
175
124
  - !ruby/object:Gem::Version
176
125
  version: '0'
177
126
  requirements: []
178
127
  rubyforge_project:
179
- rubygems_version: 2.4.5
128
+ rubygems_version: 2.4.6
180
129
  signing_key:
181
130
  specification_version: 4
182
131
  summary: BDD framework for Selenium, Appium, Cucumber and friendspec.
183
132
  test_files: []
184
- has_rdoc: