rutl 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1c070581c3f9fc5a824bcf84d2ca93bfefdb4d1f156886ac89e6e327998d5e8d
4
- data.tar.gz: 480622bf3855549371b0fb1ad5d0dc40dddbe5b0bc4a51697ea2b0dea4684ac8
3
+ metadata.gz: 91f41b74e68fe36acb46dd525f7f375f18d3939d5a7fc15c1972ff443af6125e
4
+ data.tar.gz: 1a2d184998b8f3f18532ece3f353059cbd616e8f7a419c4331c8dfc10fc40d59
5
5
  SHA512:
6
- metadata.gz: 6082a406b279d01c73083a3719fe30debc6a45ddfafef13a41241db8e5965eeb4a92e62117acb38b71fc7d7c3b4089d4bf36fe8d42278ab9593dfa39c4d9e90e
7
- data.tar.gz: 463eeec53303226112254a190c856a426200d82a03168a287de6f2543a8bf4b8c4dfd49cb703d28b3e228d902646e10ee516db66b4662f7c38bfb925cd91f50f
6
+ metadata.gz: 4a91637e9662ede93d7991261f44dde9299d0b04482ab25ce8d952fc2f16e4df210452c120642f816a373f4c565287ee16aa57033d0d3c609b23a07f5a9cd17f
7
+ data.tar.gz: 93a535c70dbd92121f461bbcea341c3dea2c9d23ac33ae6f5bdcd2658efe1dacf3feb048012412577d6a5726ecf5ca3ce535b76524a48789f92dffebcdf6e8ac
data/.circleci/config.yml CHANGED
@@ -36,7 +36,22 @@ jobs:
36
36
  - ./vendor/bundle
37
37
  key: v1-dependencies-{{ checksum "Gemfile.lock" }}
38
38
 
39
- # run tests!
39
+ - run:
40
+ name: Install the latest firefox
41
+ command: |
42
+ sudo apt-get remove firefox-mozilla-build &&
43
+ sudo sh -c "echo 'deb http://ftp.hr.debian.org/debian sid main' >> /etc/apt/sources.list" &&
44
+ sudo apt-get update &&
45
+ sudo apt-get remove binutils
46
+ sudo apt-get install -t sid firefox &&
47
+ firefox --version
48
+
49
+ - run:
50
+ name: Install geckodriver
51
+ command: |
52
+ sudo wget https://github.com/mozilla/geckodriver/releases/download/v0.20.1/geckodriver-v0.20.1-linux64.tar.gz
53
+ sudo tar xf geckodriver-v0.20.1-linux64.tar.gz -C /usr/local/bin
54
+
40
55
  - run:
41
56
  name: run tests
42
57
  command: |
data/.rubocop.yml CHANGED
@@ -1,14 +1,16 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ require: rubocop-rspec
4
+ # drewcoo-cops has to go after rubocop-rspec because otherwise it diables
5
+ # drewcoo-cops.
6
+ # There are also a bunch of warnigs spewed about the RSpec cops listed
7
+ # in the todo file so it looks like we're not playing well with rubocop-rspec
8
+ # either.
9
+ # Check this in for now and TODO: figure this out tomorrow.
10
+ require: drewcoo-cops
11
+
1
12
  AllCops:
2
13
  DefaultFormatter: progress
3
14
  DisplayCopNames: true
4
15
  DisplayStyleGuide: true
5
16
  ExtraDetails: true
6
-
7
- Metrics/BlockLength:
8
- Enabled: false
9
-
10
- Metrics/MethodLength:
11
- Enabled: false
12
-
13
- Style/BracesAroundHashParameters:
14
- Enabled: false
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,93 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2018-05-26 12:34:26 -0700 using RuboCop version 0.56.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ Metrics/AbcSize:
11
+ Max: 16
12
+
13
+ # Offense count: 3
14
+ # Configuration parameters: CountComments, ExcludedMethods.
15
+ Metrics/BlockLength:
16
+ Max: 48
17
+
18
+ # Offense count: 4
19
+ # Configuration parameters: CountComments.
20
+ Metrics/MethodLength:
21
+ Max: 19
22
+
23
+ # Offense count: 1
24
+ Naming/AccessorMethodName:
25
+ Exclude:
26
+ - 'lib/rutl/interface/null_interface.rb'
27
+
28
+ # Offense count: 1
29
+ RSpec/ExampleLength:
30
+ Exclude:
31
+ - 'spec/chrome_interface_spec.rb'
32
+
33
+ # Offense count: 2
34
+ RSpec/ExpectActual:
35
+ Exclude:
36
+ - 'spec/null_interface_spec.rb'
37
+ - 'spec/rutl_spec.rb'
38
+
39
+ # Offense count: 1
40
+ RSpec/MultipleExpectations:
41
+ Exclude:
42
+ - 'spec/chrome_interface_spec.rb'
43
+
44
+ # Offense count: 4
45
+ # Cop supports --auto-correct.
46
+ # Configuration parameters: EnforcedStyle.
47
+ # SupportedStyles: braces, no_braces, context_dependent
48
+ Style/BracesAroundHashParameters:
49
+ Exclude:
50
+ - 'spec/pages/internet_login_page.rb'
51
+ - 'spec/pages/page1.rb'
52
+
53
+ # Offense count: 1
54
+ Style/ClassVars:
55
+ Exclude:
56
+ - 'lib/rutl/base_page.rb'
57
+
58
+ # Offense count: 4
59
+ Style/MethodMissingSuper:
60
+ Exclude:
61
+ - 'lib/rutl/base_page.rb'
62
+ - 'lib/rutl/browser.rb'
63
+ - 'lib/rutl/interface/base_interface.rb'
64
+ - 'spec/spec_helper.rb'
65
+
66
+ # Offense count: 1
67
+ # Cop supports --auto-correct.
68
+ Style/PerlBackrefs:
69
+ Exclude:
70
+ - 'lib/rutl/browser.rb'
71
+
72
+ # Offense count: 1
73
+ # Cop supports --auto-correct.
74
+ # Configuration parameters: EnforcedStyle.
75
+ # SupportedStyles: implicit, explicit
76
+ Style/RescueStandardError:
77
+ Exclude:
78
+ - 'lib/rutl/utilities.rb'
79
+
80
+ # Offense count: 3
81
+ # Cop supports --auto-correct.
82
+ # Configuration parameters: AllowIfMethodIsEmpty.
83
+ Style/SingleLineMethods:
84
+ Exclude:
85
+ - 'lib/rutl/base_page.rb'
86
+
87
+ # Offense count: 1
88
+ # Cop supports --auto-correct.
89
+ # Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, IgnoreClassMethods, Whitelist.
90
+ # Whitelist: to_ary, to_a, to_c, to_enum, to_h, to_hash, to_i, to_int, to_io, to_open, to_path, to_proc, to_r, to_regexp, to_str, to_s, to_sym
91
+ Style/TrivialAccessors:
92
+ Exclude:
93
+ - 'lib/rutl/base_page.rb'
data/README.md CHANGED
@@ -5,8 +5,7 @@
5
5
  [![Coverage Status](https://coveralls.io/repos/github/drewcoo/rutl/badge.svg?branch=master)](https://coveralls.io/github/drewcoo/rutl?branch=master)
6
6
  [![Gem Version](https://badge.fury.io/rb/rutl.svg)](https://badge.fury.io/rb/rutl)
7
7
 
8
- This is the Ruby Ui Test Library, or RUTL. Not to be confused with the Rutles.
9
- https://www.rutles.org/
8
+ This is the Ruby Ui Test Library, or RUTL. Not to be confused with [The Rutles](https://www.rutles.org/).
10
9
 
11
10
  Framework goals:
12
11
  * Define what's on a page in an easy, flexible way. Easy page objects!
@@ -39,22 +38,22 @@ TODO: Write usage instructions here
39
38
 
40
39
  ## Roadmap
41
40
  Coming up soon in almost no order:
42
- * Make browser tests work on TravisCI.
43
41
  * A test framework should have better tests. Goes with next bullet.
44
42
  * Flesh out null interface/driver. Make them do what a real browser does.
45
- * Make geckodriver work. Geckodriver-helper is failing me.
46
43
  * Restructure tests to handle fake browsers and real browsers. Same structure?
47
- * Make this work with pages in some other location so we can use it as a gem.
48
- * Make work with TravisCI.
44
+ * Make this work with pages files in some other location so we can use it as a gem.
49
45
  * Put more info in this readme.
50
46
  * Take screenshots.
51
47
  * Diff screenshots. Make this smart so we don't have to be experts.
52
- * InternetExplorerDriver
48
+ * The webdriver gem should already include InternetExplorerDriver. Maybe run tests on AppVeyor.
53
49
  * Other browser drivers? Look at https://github.com/fnando/browser
54
50
  * Get this working with Appium:
55
51
  * Make TK app to test on desktops and test it.
52
+ * Can Ruby TK create accesible apps?
56
53
  * Make Android example app and get this to work.
54
+ * Corboba?
57
55
  * Same with iPhone.
56
+ * Same Cordoba test app?
58
57
  * Others?
59
58
  * Spidering page object maker.
60
59
  * Possibly pair the null browser with auto-generated pages for ______?
@@ -66,10 +65,12 @@ Coming up soon in almost no order:
66
65
  ## Development
67
66
 
68
67
  Set everything up:
68
+
69
69
  1. Check out the repo.
70
70
  2. `cd` to the repo.
71
71
  3. `bundle install`
72
72
  4. `bundle exec rake`
73
+
73
74
  Great! You've checked out the code, installed everything and run the tests.
74
75
 
75
76
  Rubocop. I still have to tweak what I want it to complain about.
@@ -12,11 +12,7 @@ class BaseInterface
12
12
  end
13
13
 
14
14
  attr_reader :pages
15
-
16
- # Child classes must implement current_page
17
-
18
15
  attr_accessor :driver
19
-
20
16
  attr_accessor :interface
21
17
 
22
18
  def initialize(pages:)
@@ -27,7 +23,7 @@ class BaseInterface
27
23
 
28
24
  def goto(input)
29
25
  # TODO: KLUDGY. Fix. Modifier if usage bombs here. *shrug*
30
- @driver.interface = @interface if 'NullInterface' == @interface.class.to_s
26
+ @driver.interface = @interface if @interface.class.to_s == 'NullInterface'
31
27
  input = find_page(input) unless input.methods.include?(:url)
32
28
 
33
29
  @driver.navigate.to input.url
@@ -59,7 +55,7 @@ class BaseInterface
59
55
  target_states.each do |state|
60
56
  next unless state.url == current_page.url
61
57
  page = find_page(state, true)
62
- return current_page = page if page.loaded?
58
+ return page if page.loaded?
63
59
  end
64
60
  raise current_page.to_s if current_page.class == InternetLoggedInPage
65
61
  false
@@ -14,7 +14,7 @@ class ChromeInterface < BaseInterface
14
14
  options.add_argument('--disable-popup-blocking')
15
15
  options.add_argument('--disable-translate')
16
16
  # Run headless on TravisCI
17
- if 'true' == ENV['TRAVIS']
17
+ if ENV['TRAVIS'] == 'true'
18
18
  options.add_argument('--disable-gpu')
19
19
  options.add_argument('--headless ')
20
20
  options.add_argument('--no-sandbox')
@@ -13,6 +13,7 @@ class FirefoxInterface < BaseInterface
13
13
  options.add_argument('--ignore-certificate-errors')
14
14
  options.add_argument('--disable-popup-blocking')
15
15
  options.add_argument('--disable-translate')
16
+ options.add_argument('--headless') if ENV['TRAVIS'] == 'true'
16
17
  @driver = Selenium::WebDriver.for :firefox, options: options
17
18
  super
18
19
  end
@@ -4,9 +4,6 @@ require 'rutl/interface/base_interface'
4
4
  # Interface-level code for fake browser.
5
5
  #
6
6
  class NullInterface < BaseInterface
7
- # Only the null interface>>
8
- attr_reader :current_page
9
-
10
7
  @variables = []
11
8
  attr_accessor :variables
12
9
 
@@ -14,7 +14,9 @@ module Utilities
14
14
  loop do
15
15
  result = lamb.call
16
16
  return result if result
17
+ # rubocop:disable Style/SleepCop
17
18
  sleep poll_sleep_time
19
+ # rubocop:enable Style/SleepCop
18
20
  end
19
21
  end
20
22
  end
data/lib/rutl/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module RUTL
2
- VERSION = '0.1.2'.freeze
2
+ VERSION = '0.1.3'.freeze
3
3
  end
data/rutl.gemspec CHANGED
@@ -15,8 +15,6 @@ Gem::Specification.new do |spec|
15
15
  spec.homepage = 'https://github.com/drewcoo/rutl'
16
16
  spec.license = 'MIT'
17
17
 
18
- # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
19
- # to allow pushing to a single host or delete this section to allow pushing to any host.
20
18
  if spec.respond_to?(:metadata)
21
19
  spec.metadata['allowed_push_host'] = 'https://rubygems.org/gems/rutl'
22
20
  else
@@ -24,23 +22,22 @@ Gem::Specification.new do |spec|
24
22
  'public gem pushes.'
25
23
  end
26
24
 
27
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
25
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
28
26
  f.match(%r{^(test|spec|features)/})
29
27
  end
30
- spec.bindir = 'exe'
31
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
+ spec.bindir = 'exe'
29
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
32
30
  spec.require_paths = ['lib']
33
31
 
34
32
  spec.add_development_dependency 'bundler', '~> 1.15'
35
- if ENV['CIRCLECI'].nil?
36
- spec.add_development_dependency 'chromedriver-helper', '~> 1.2'
37
- end
38
- spec.add_development_dependency 'coveralls' #@, require: false
39
- #spec.add_development_dependency 'geckodriver-helper', '~> 0.20'
33
+ spec.add_development_dependency 'coveralls'
34
+ spec.add_development_dependency 'drewcoo-cops'
40
35
  spec.add_development_dependency 'gem-release'
41
36
  spec.add_development_dependency 'rake', '~> 12.3'
42
37
  spec.add_development_dependency 'rspec', '~> 3.0'
43
38
  spec.add_development_dependency 'rspec_junit_formatter', '~> 0.3'
44
39
  spec.add_development_dependency 'rubocop', '~> 0.55'
40
+ spec.add_development_dependency 'rubocop-rspec'
45
41
  spec.add_development_dependency 'selenium-webdriver', '~> 3.12'
42
+ spec.add_development_dependency 'webdrivers', '~> 3.0'
46
43
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rutl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Drew Cooper
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-05-23 00:00:00.000000000 Z
11
+ date: 2018-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -25,21 +25,21 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.15'
27
27
  - !ruby/object:Gem::Dependency
28
- name: chromedriver-helper
28
+ name: coveralls
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '1.2'
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '1.2'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: coveralls
42
+ name: drewcoo-cops
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -122,6 +122,20 @@ dependencies:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0.55'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rubocop-rspec
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: selenium-webdriver
127
141
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +150,20 @@ dependencies:
136
150
  - - "~>"
137
151
  - !ruby/object:Gem::Version
138
152
  version: '3.12'
153
+ - !ruby/object:Gem::Dependency
154
+ name: webdrivers
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '3.0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '3.0'
139
167
  description: DANGER!!! DO NOT USE YET!!! This is a UI library under construction and
140
168
  only name-squatting for the moment.
141
169
  email:
@@ -149,6 +177,7 @@ files:
149
177
  - ".gitignore"
150
178
  - ".rspec"
151
179
  - ".rubocop.yml"
180
+ - ".rubocop_todo.yml"
152
181
  - ".travis.yml"
153
182
  - Gemfile
154
183
  - LICENSE.txt