ams_layout 0.0.3 → 0.0.4
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 +4 -4
- data/.gitignore +1 -2
- data/Rakefile +1 -1
- data/ams_layout.gemspec +1 -0
- data/lib/ams_layout.rb +1 -1
- data/lib/ams_layout/pages.rb +32 -11
- data/lib/ams_layout/version.rb +1 -1
- data/spec/lib/ams_layout/client_spec.rb +1 -0
- metadata +16 -3
- data/lib/ams_layout/browser_loader.rb +0 -99
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8906bc93ff556d7794f047aed24a6ffa22547f24
|
4
|
+
data.tar.gz: ccd43a30fb9ddfa0895df01b3852ae66880e7226
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1eccda6b0a96f2bb2e906dc9c829af00b648b958f6f22202322c634d2f933eb42f1b5b67fe4fc6349915e9fc1e25cbe83af3253cb3c93c753dda7c1c575b7bb9
|
7
|
+
data.tar.gz: cc70f886bfacc1aa83a31be4f54ed98f686bcee0430e090f11c1231d330b0a12b076e23e154304d30d300d6a52441c48bd4727ef13d4fa7d253a9b18f0646bc6
|
data/.gitignore
CHANGED
data/Rakefile
CHANGED
data/ams_layout.gemspec
CHANGED
data/lib/ams_layout.rb
CHANGED
data/lib/ams_layout/pages.rb
CHANGED
@@ -7,12 +7,42 @@
|
|
7
7
|
# Website:: http://ktechsystems.com
|
8
8
|
##############################################################################
|
9
9
|
|
10
|
-
require '
|
10
|
+
require 'browser_loader'
|
11
11
|
require 'ams_layout/pages/login_page'
|
12
12
|
require 'ams_layout/pages/prequal_detail'
|
13
13
|
|
14
14
|
module AmsLayout
|
15
15
|
module Pages
|
16
|
+
class BrowserInst
|
17
|
+
@@browser = nil
|
18
|
+
|
19
|
+
##
|
20
|
+
# Return a configured browser object. If a browser has already been created,
|
21
|
+
# this returns the existing browser.
|
22
|
+
#
|
23
|
+
# An +at_exit+ proc is created to close the browser when the program exits.
|
24
|
+
|
25
|
+
def self.browser
|
26
|
+
if ! open_browser?
|
27
|
+
BrowserLoader::Factory.browser_timeout = AmsLayout.configuration.browser_timeout
|
28
|
+
@@browser = BrowserLoader::Factory.build
|
29
|
+
|
30
|
+
at_exit do
|
31
|
+
unless ! open_browser?
|
32
|
+
# Make sure every webdriver window is closed.
|
33
|
+
@@browser.windows.each { |w| w.close rescue nil }
|
34
|
+
@@browser.close rescue nil
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
@@browser
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.open_browser?
|
43
|
+
return (! @@browser.nil? && @@browser.exist? )
|
44
|
+
end
|
45
|
+
end
|
16
46
|
|
17
47
|
##
|
18
48
|
# Return a configured browser object. If a browser has already been created,
|
@@ -21,16 +51,7 @@ module AmsLayout
|
|
21
51
|
# An +at_exit+ proc is created to close the browser when the program exits.
|
22
52
|
|
23
53
|
def browser
|
24
|
-
|
25
|
-
BrowserLoader.user_data_path = AmsLayout.configuration.user_data_path
|
26
|
-
@browser = BrowserLoader.init_browser AmsLayout.configuration.browser_timeout
|
27
|
-
|
28
|
-
at_exit do
|
29
|
-
@browser.close unless @browser.nil?
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
@browser
|
54
|
+
BrowserInst.browser
|
34
55
|
end
|
35
56
|
end # Pages
|
36
57
|
end # AmsLayout
|
data/lib/ams_layout/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ams_layout
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff McAffee
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-10-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -136,6 +136,20 @@ dependencies:
|
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: browser_loader
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
139
153
|
description: Generate AMS Portal control field configuration data
|
140
154
|
email:
|
141
155
|
- jeff@ktechsystems.com
|
@@ -156,7 +170,6 @@ files:
|
|
156
170
|
- ams_layout.gemspec
|
157
171
|
- bin/ams_layout
|
158
172
|
- lib/ams_layout.rb
|
159
|
-
- lib/ams_layout/browser_loader.rb
|
160
173
|
- lib/ams_layout/cli.rb
|
161
174
|
- lib/ams_layout/cli/config.rb
|
162
175
|
- lib/ams_layout/cli/generate.rb
|
@@ -1,99 +0,0 @@
|
|
1
|
-
##############################################################################
|
2
|
-
# File:: browser_loader.rb
|
3
|
-
# Purpose:: Create and initialize a browser with Watir
|
4
|
-
#
|
5
|
-
# Author:: Jeff McAffee 06/21/2014
|
6
|
-
# Copyright:: Copyright (c) 2014, kTech Systems LLC. All rights reserved.
|
7
|
-
# Website:: http://ktechsystems.com
|
8
|
-
##############################################################################
|
9
|
-
|
10
|
-
require 'watir-webdriver'
|
11
|
-
require 'ktutils/os'
|
12
|
-
|
13
|
-
|
14
|
-
###
|
15
|
-
# To start/stop Chrome auto-update, see http://blog.doofix.com/how-to-stop-google-chrome-from-automatic-update/
|
16
|
-
#
|
17
|
-
# Regedit instructions (in case URL breaks):
|
18
|
-
#
|
19
|
-
# Set value HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Update\UpdateDefault to 0 to turn off auto-update.
|
20
|
-
# Set to 1 to turn on auto-update, or delete the value (UpdateDefault).
|
21
|
-
#
|
22
|
-
|
23
|
-
###
|
24
|
-
# Chromedriver updates can be downloaded from http://chromedriver.storage.googleapis.com/index.html
|
25
|
-
#
|
26
|
-
|
27
|
-
class BrowserLoader
|
28
|
-
def self.init_browser timeout = 60
|
29
|
-
if ENV["BROWSER"] == "ie"
|
30
|
-
browser = Watir::Browser.new :ie
|
31
|
-
elsif ENV["BROWSER"] == "ff" || ENV["BROWSER"] == "firefox"
|
32
|
-
browser = Watir::Browser.new :firefox
|
33
|
-
else
|
34
|
-
# Specify chrome browser capabilities.
|
35
|
-
caps = Selenium::WebDriver::Remote::Capabilities.chrome
|
36
|
-
caps['chromeOptions'] = {'binary' => chromium_exe }
|
37
|
-
#caps['chromeOptions'] = {'binary' => '/opt/bin/test/chrome-27.0.1453.94.exe' }
|
38
|
-
# See http://peter.sh/experiments/chromium-command-line-switches/ for a list of available switches.
|
39
|
-
# See https://sites.google.com/a/chromium.org/chromedriver/capabilities for details on setting ChromeDriver caps.
|
40
|
-
|
41
|
-
# NOTE: The only way I've found to stop the EULA from being displayed is to
|
42
|
-
# use the user-data-dir switch and point to a dir where chrome can put the
|
43
|
-
# data indicating it (EULA) has already been accepted.
|
44
|
-
|
45
|
-
# ignore-certificate-errors: Ignores certificate-related errors.
|
46
|
-
# disable-popup-blocking: Disable pop-up blocking.
|
47
|
-
# disable-translate: Allows disabling of translate from the command line to assist with automated browser testing
|
48
|
-
# no-first-run: Skip First Run tasks, whether or not it's actually the First Run.
|
49
|
-
# log-level: Sets the minimum log level. Valid values are from 0 to 3: INFO = 0, WARNING = 1, LOG_ERROR = 2, LOG_FATAL = 3.
|
50
|
-
# test-type: As of v35, chrome displays a message bar stating
|
51
|
-
# "You are using an unsupported command-line flag: --ignore-certifcate-errors. Stability and security will suffer."
|
52
|
-
# --test-type is supposed to disable the display of the error.
|
53
|
-
switches = %w[--ignore-certificate-errors --disable-popup-blocking --disable-translate --no-first-run --log-level=3 --test-type]
|
54
|
-
switches << "--user-data-dir=#{user_data_dir}"
|
55
|
-
|
56
|
-
# Create a client so we can adjust the timeout period.
|
57
|
-
client = Selenium::WebDriver::Remote::Http::Default.new
|
58
|
-
|
59
|
-
# Set the browser timeout. Default is 60 seconds.
|
60
|
-
client.timeout = timeout
|
61
|
-
|
62
|
-
# switches and caps modify chrome (or chromium) browser,
|
63
|
-
# service_args modifys chromedriver.
|
64
|
-
browser = Watir::Browser.new :chrome,
|
65
|
-
:switches => switches,
|
66
|
-
:http_client => client,
|
67
|
-
:service_log_path => user_data_dir + '/chromedriver.out',
|
68
|
-
:desired_capabilities => caps
|
69
|
-
end
|
70
|
-
|
71
|
-
browser
|
72
|
-
end
|
73
|
-
|
74
|
-
def self.user_data_path= path
|
75
|
-
@user_data_path = path
|
76
|
-
end
|
77
|
-
|
78
|
-
def self.user_data_dir
|
79
|
-
# Store chrome profile at chrome-data.
|
80
|
-
#user_data_dir = File.absolute_path(File.join(__FILE__, '../../../chrome-data'))
|
81
|
-
user_data_dir = File.absolute_path(@user_data_path)
|
82
|
-
|
83
|
-
fail "Chromium user-data directory does not exist at #{user_data_dir}" unless File.exist?(user_data_dir)
|
84
|
-
|
85
|
-
user_data_dir
|
86
|
-
end
|
87
|
-
|
88
|
-
def self.chromium_exe
|
89
|
-
if Ktutils::OS.windows?
|
90
|
-
# Downloaded from http://chromium.woolyss.com/
|
91
|
-
# Package: Chromium Package (32-bit)
|
92
|
-
# Version: 37.0.2011.0 (272392)
|
93
|
-
chromium_exe = File.absolute_path(File.join(__FILE__, '../../bin/chrome-win32/chrome.exe'))
|
94
|
-
else
|
95
|
-
chromium_exe = `which chromium-browser`.chomp
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end # BrowserLoader
|
99
|
-
|