ams_layout 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
|