lazycuke 0.0.6 → 0.0.7

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.
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: