admin_module 0.1.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 +7 -0
- data/.gitignore +19 -0
- data/.rspec +3 -0
- data/Gemfile +14 -0
- data/Guardfile +24 -0
- data/LICENSE +22 -0
- data/README.md +281 -0
- data/Rakefile +98 -0
- data/admin_module.gemspec +34 -0
- data/bin/admin_module +13 -0
- data/lib/admin_module.rb +260 -0
- data/lib/admin_module/cli.rb +54 -0
- data/lib/admin_module/cli/cli_guideline.rb +80 -0
- data/lib/admin_module/cli/cli_lock.rb +149 -0
- data/lib/admin_module/cli/cli_parameter.rb +66 -0
- data/lib/admin_module/cli/cli_task.rb +149 -0
- data/lib/admin_module/cli_old.rb +92 -0
- data/lib/admin_module/client.rb +146 -0
- data/lib/admin_module/command.rb +25 -0
- data/lib/admin_module/command/client_access.rb +43 -0
- data/lib/admin_module/command/config.rb +310 -0
- data/lib/admin_module/command/dc.rb +110 -0
- data/lib/admin_module/command/gdl.rb +71 -0
- data/lib/admin_module/command/lock.rb +110 -0
- data/lib/admin_module/command/ppm.rb +142 -0
- data/lib/admin_module/command/rule.rb +77 -0
- data/lib/admin_module/command/ruleset.rb +56 -0
- data/lib/admin_module/command/snapshot.rb +110 -0
- data/lib/admin_module/command/stage.rb +131 -0
- data/lib/admin_module/command/task.rb +110 -0
- data/lib/admin_module/config_helper.rb +33 -0
- data/lib/admin_module/dc.rb +133 -0
- data/lib/admin_module/guideline.rb +86 -0
- data/lib/admin_module/locks.rb +142 -0
- data/lib/admin_module/page_factory.rb +55 -0
- data/lib/admin_module/pages.rb +120 -0
- data/lib/admin_module/pages/dc_definitions_page.rb +73 -0
- data/lib/admin_module/pages/dc_detail_page.rb +187 -0
- data/lib/admin_module/pages/guideline_page.rb +35 -0
- data/lib/admin_module/pages/guideline_version_page.rb +140 -0
- data/lib/admin_module/pages/guidelines_page.rb +59 -0
- data/lib/admin_module/pages/guidelines_version_all_page.rb +116 -0
- data/lib/admin_module/pages/lock_definition_page.rb +178 -0
- data/lib/admin_module/pages/lock_definitions_page.rb +69 -0
- data/lib/admin_module/pages/login_page.rb +75 -0
- data/lib/admin_module/pages/parameter_page.rb +62 -0
- data/lib/admin_module/pages/parameters_page.rb +46 -0
- data/lib/admin_module/pages/ppms_page.rb +110 -0
- data/lib/admin_module/pages/rule_page.rb +68 -0
- data/lib/admin_module/pages/rules_page.rb +74 -0
- data/lib/admin_module/pages/ruleset_page.rb +64 -0
- data/lib/admin_module/pages/rulesets_page.rb +60 -0
- data/lib/admin_module/pages/select_list_syncable.rb +64 -0
- data/lib/admin_module/pages/snapshot_definitions_page.rb +73 -0
- data/lib/admin_module/pages/snapshot_detail_page.rb +246 -0
- data/lib/admin_module/pages/workflow_detail_page.rb +451 -0
- data/lib/admin_module/pages/workflow_detail_task_addl_detail_page.rb +172 -0
- data/lib/admin_module/pages/workflow_detail_task_mappings_page.rb +163 -0
- data/lib/admin_module/pages/workflow_detail_task_screens_page.rb +75 -0
- data/lib/admin_module/pages/workflow_details_page.rb +67 -0
- data/lib/admin_module/pages/workflow_task_page.rb +107 -0
- data/lib/admin_module/pages/workflow_tasks_page.rb +111 -0
- data/lib/admin_module/ppms.rb +78 -0
- data/lib/admin_module/rake.rb +22 -0
- data/lib/admin_module/rake/dc_tasks.rb +185 -0
- data/lib/admin_module/rake/deploy_task.rb +59 -0
- data/lib/admin_module/rake/gdl_tasks.rb +189 -0
- data/lib/admin_module/rake/lock_tasks.rb +189 -0
- data/lib/admin_module/rake/parameter_task.rb +86 -0
- data/lib/admin_module/rake/ppm_tasks.rb +248 -0
- data/lib/admin_module/rake/rule_tasks.rb +157 -0
- data/lib/admin_module/rake/snapshot_tasks.rb +223 -0
- data/lib/admin_module/rake/stage_tasks.rb +197 -0
- data/lib/admin_module/rake/stages_task.rb +197 -0
- data/lib/admin_module/rake/task_tasks.rb +189 -0
- data/lib/admin_module/rules.rb +50 -0
- data/lib/admin_module/rulesets.rb +42 -0
- data/lib/admin_module/snapshots.rb +133 -0
- data/lib/admin_module/stages.rb +171 -0
- data/lib/admin_module/tasks.rb +147 -0
- data/lib/admin_module/version.rb +3 -0
- data/old_spec/lib/admin_module/cli_configuration_spec.rb +126 -0
- data/old_spec/lib/admin_module/cli_create_stage_spec.rb +89 -0
- data/old_spec/lib/admin_module/cli_delete_rule_spec.rb +57 -0
- data/old_spec/lib/admin_module/cli_deploy_spec.rb +57 -0
- data/old_spec/lib/admin_module/cli_export_locks_spec.rb +62 -0
- data/old_spec/lib/admin_module/cli_export_stages_spec.rb +62 -0
- data/old_spec/lib/admin_module/cli_guidelines_version_all_spec.rb +58 -0
- data/old_spec/lib/admin_module/cli_import_locks_spec.rb +153 -0
- data/old_spec/lib/admin_module/cli_import_stages_spec.rb +173 -0
- data/old_spec/lib/admin_module/cli_modify_locks_spec.rb +128 -0
- data/old_spec/lib/admin_module/cli_modify_stages_spec.rb +88 -0
- data/old_spec/lib/admin_module/cli_rename_rule_spec.rb +53 -0
- data/old_spec/lib/admin_module/cli_rename_ruleset_spec.rb +53 -0
- data/old_spec/lib/admin_module/cli_var_spec.rb +41 -0
- data/old_spec/lib/admin_module/rake/deploy_task_spec.rb +85 -0
- data/old_spec/lib/admin_module/rake/parameter_task_spec.rb +58 -0
- data/old_spec/lib/admin_module/rake/rules_task_spec.rb +75 -0
- data/spec/data/build/test1.xml +0 -0
- data/spec/data/build/test2.xml +1 -0
- data/spec/data/import_dcs.yml +31 -0
- data/spec/data/import_locks.yml +4 -0
- data/spec/data/import_snapshots.yml +35 -0
- data/spec/data/import_stages.yml +4 -0
- data/spec/data/import_tasks.yml +25 -0
- data/spec/data/patch-test.xml +1 -0
- data/spec/data/remove_test_del_rule.xml +1 -0
- data/spec/data/stages.yml +518 -0
- data/spec/data/test_del_rule.xml +1 -0
- data/spec/lib/admin_module/admin_module_spec.rb +175 -0
- data/spec/lib/admin_module/cli_spec.rb +36 -0
- data/spec/lib/admin_module/client_spec.rb +158 -0
- data/spec/lib/admin_module/command/config_spec.rb +477 -0
- data/spec/lib/admin_module/command/dc_spec.rb +202 -0
- data/spec/lib/admin_module/command/gdl_spec.rb +139 -0
- data/spec/lib/admin_module/command/lock_spec.rb +207 -0
- data/spec/lib/admin_module/command/rule_spec.rb +163 -0
- data/spec/lib/admin_module/command/ruleset_spec.rb +124 -0
- data/spec/lib/admin_module/command/snapshot_spec.rb +202 -0
- data/spec/lib/admin_module/command/stage_spec.rb +259 -0
- data/spec/lib/admin_module/command/task_spec.rb +207 -0
- data/spec/lib/admin_module/dc_spec.rb +192 -0
- data/spec/lib/admin_module/guideline_spec.rb +177 -0
- data/spec/lib/admin_module/locks_spec.rb +188 -0
- data/spec/lib/admin_module/rules_spec.rb +110 -0
- data/spec/lib/admin_module/rulesets_spec.rb +85 -0
- data/spec/lib/admin_module/snapshot_spec.rb +192 -0
- data/spec/lib/admin_module/stages_spec.rb +179 -0
- data/spec/lib/admin_module/tasks_spec.rb +196 -0
- data/spec/spec_helper.rb +54 -0
- data/spec/support/asserts.rb +13 -0
- data/spec/support/data_clearing.rb +28 -0
- data/spec/support/dirs.rb +54 -0
- data/spec/support/helpers.rb +83 -0
- data/spec/support/lock.rb +23 -0
- data/spec/support/mocks.rb +213 -0
- data/spec/support/snapshot.rb +28 -0
- data/spec/support/stage.rb +22 -0
- data/spec/support/stage_factory.rb +138 -0
- data/spec/support/task.rb +23 -0
- metadata +381 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
##############################################################################
|
|
2
|
+
# File:: lock_definition.rb
|
|
3
|
+
# Purpose:: Lock edit page for AdminModule
|
|
4
|
+
#
|
|
5
|
+
# Author:: Jeff McAffee 2013-11-22
|
|
6
|
+
#
|
|
7
|
+
##############################################################################
|
|
8
|
+
require 'page-object'
|
|
9
|
+
|
|
10
|
+
module AdminModule::Pages
|
|
11
|
+
|
|
12
|
+
class LockDefinitionPage
|
|
13
|
+
include PageObject
|
|
14
|
+
|
|
15
|
+
#page_url(:get_dynamic_url)
|
|
16
|
+
|
|
17
|
+
#def get_dynamic_url
|
|
18
|
+
# AdminModule.configuration.url(GuidelinePage)
|
|
19
|
+
#end
|
|
20
|
+
|
|
21
|
+
text_field(:name,
|
|
22
|
+
id: 'ctl00_cntPlh_txtName')
|
|
23
|
+
|
|
24
|
+
text_area(:description,
|
|
25
|
+
id: 'ctl00_cntPlh_txtDesc')
|
|
26
|
+
|
|
27
|
+
checkbox(:is_program_lock,
|
|
28
|
+
id: 'ctl00_cntPlh_chkViewType')
|
|
29
|
+
|
|
30
|
+
link(:parameters_tab,
|
|
31
|
+
text: 'Parameters')
|
|
32
|
+
|
|
33
|
+
select_list(:params_available,
|
|
34
|
+
id: 'ctl00_cntPlh_tsParams_lstAvailable')
|
|
35
|
+
|
|
36
|
+
select_list(:params_selected,
|
|
37
|
+
id: 'ctl00_cntPlh_tsParams_lstSelected')
|
|
38
|
+
|
|
39
|
+
button(:add_param_button,
|
|
40
|
+
id: 'ctl00_cntPlh_tsParams_btnAdd')
|
|
41
|
+
|
|
42
|
+
button(:add_all_params_button,
|
|
43
|
+
id: 'ctl00_cntPlh_tsParams_btnAddAll')
|
|
44
|
+
|
|
45
|
+
button(:remove_param_button,
|
|
46
|
+
id: 'ctl00_cntPlh_tsParams_btnRemove')
|
|
47
|
+
|
|
48
|
+
button(:remove_all_params_button,
|
|
49
|
+
id: 'ctl00_cntPlh_tsParams_btnRemoveAll')
|
|
50
|
+
|
|
51
|
+
link(:dts_tab,
|
|
52
|
+
text: 'DTS/UDF')
|
|
53
|
+
|
|
54
|
+
select_list(:dts_available,
|
|
55
|
+
id: 'ctl00_cntPlh_tsSnapshotDTS_lstAvailable')
|
|
56
|
+
|
|
57
|
+
select_list(:dts_selected,
|
|
58
|
+
id: 'ctl00_cntPlh_tsSnapshotDTS_lstSelected')
|
|
59
|
+
|
|
60
|
+
button(:add_dts_button,
|
|
61
|
+
id: 'ctl00_cntPlh_tsSnapshotDTS_btnAdd')
|
|
62
|
+
|
|
63
|
+
button(:add_all_dts_button,
|
|
64
|
+
id: 'ctl00_cntPlh_tsSnapshotDTS_btnAddAll')
|
|
65
|
+
|
|
66
|
+
button(:remove_dts_button,
|
|
67
|
+
id: 'ctl00_cntPlh_tsSnapshotDTS_btnRemove')
|
|
68
|
+
|
|
69
|
+
button(:remove_all_dts_button,
|
|
70
|
+
id: 'ctl00_cntPlh_tsSnapshotDTS_btnRemoveAll')
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
button(:save_button,
|
|
74
|
+
id: 'ctl00_cntPlh_btnSave')
|
|
75
|
+
|
|
76
|
+
button(:cancel_button,
|
|
77
|
+
id: 'ctl00_cntPlh_btnCancel')
|
|
78
|
+
|
|
79
|
+
def get_lock_data
|
|
80
|
+
lock_data = { name: self.name,
|
|
81
|
+
description: self.description,
|
|
82
|
+
is_program_lock: self.is_program_lock_checked? }
|
|
83
|
+
|
|
84
|
+
self.parameters_tab
|
|
85
|
+
lock_data[:parameters] = get_selected_parameter_options
|
|
86
|
+
|
|
87
|
+
self.dts_tab
|
|
88
|
+
lock_data[:dts] = get_selected_dts_options
|
|
89
|
+
|
|
90
|
+
lock_data
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def set_lock_data lock_data
|
|
94
|
+
self.name = lock_data[:name]
|
|
95
|
+
self.description = lock_data[:description]
|
|
96
|
+
self.check_is_program_lock if lock_data[:is_program_lock] == true
|
|
97
|
+
self.uncheck_is_program_lock if lock_data[:is_program_lock] == false
|
|
98
|
+
|
|
99
|
+
self.parameters_tab
|
|
100
|
+
set_parameter_fields lock_data[:parameters]
|
|
101
|
+
|
|
102
|
+
self.dts_tab
|
|
103
|
+
set_dts_fields lock_data[:dts]
|
|
104
|
+
|
|
105
|
+
self
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def save
|
|
109
|
+
self.save_button
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
private
|
|
113
|
+
|
|
114
|
+
include SelectListSyncable
|
|
115
|
+
|
|
116
|
+
def get_available_parameter_options
|
|
117
|
+
vars = []
|
|
118
|
+
Nokogiri::HTML(@browser.html).css('#ctl00_cntPlh_tsParams_lstAvailable > option').each do |elem|
|
|
119
|
+
vars << elem.text
|
|
120
|
+
end
|
|
121
|
+
vars
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
def get_selected_parameter_options
|
|
125
|
+
vars = []
|
|
126
|
+
Nokogiri::HTML(@browser.html).css('#ctl00_cntPlh_tsParams_lstSelected > option').each do |elem|
|
|
127
|
+
vars << elem.text
|
|
128
|
+
end
|
|
129
|
+
vars
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def get_available_dts_options
|
|
133
|
+
vars = []
|
|
134
|
+
Nokogiri::HTML(@browser.html).css('#ctl00_cntPlh_tsSnapshotDTS_lstAvailable > option').each do |elem|
|
|
135
|
+
vars << elem.text
|
|
136
|
+
end
|
|
137
|
+
vars
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
def get_selected_dts_options
|
|
141
|
+
vars = []
|
|
142
|
+
Nokogiri::HTML(@browser.html).css('#ctl00_cntPlh_tsSnapshotDTS_lstSelected > option').each do |elem|
|
|
143
|
+
vars << elem.text
|
|
144
|
+
end
|
|
145
|
+
vars
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
def set_parameter_fields data
|
|
149
|
+
sync_available_and_selected_lists get_available_parameter_options,
|
|
150
|
+
params_available_element,
|
|
151
|
+
get_selected_parameter_options,
|
|
152
|
+
params_selected_element,
|
|
153
|
+
add_param_button_element,
|
|
154
|
+
remove_param_button_element,
|
|
155
|
+
data
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
def set_dts_fields data
|
|
159
|
+
sync_available_and_selected_lists get_available_dts_options,
|
|
160
|
+
dts_available_element,
|
|
161
|
+
get_selected_dts_options,
|
|
162
|
+
dts_selected_element,
|
|
163
|
+
add_dts_button_element,
|
|
164
|
+
remove_dts_button_element,
|
|
165
|
+
data
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
def assert_all_params_removed
|
|
169
|
+
raise "Unable to remove parameters" unless get_selected_parameter_options.count == 0
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
def assert_all_dts_fields_removed
|
|
173
|
+
raise "Unable to remove DTS fields" unless get_selected_dts_options.count == 0
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
end # module Pages
|
|
178
|
+
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
##############################################################################
|
|
2
|
+
# File:: lock_definitions_page.rb
|
|
3
|
+
# Purpose:: Lock Definitions page for AdminModule
|
|
4
|
+
#
|
|
5
|
+
# Note that the admin module has at least 3 pages that all reference
|
|
6
|
+
# the same url with the difference being the 'type' parameter.
|
|
7
|
+
#
|
|
8
|
+
# The Lock Defintions page has a type of 2 and account of 2:
|
|
9
|
+
#
|
|
10
|
+
# admin/security/ViewDefinitions.aspx?type=2&Act=2
|
|
11
|
+
#
|
|
12
|
+
# Author:: Jeff McAffee 2013-11-22
|
|
13
|
+
#
|
|
14
|
+
##############################################################################
|
|
15
|
+
require 'page-object'
|
|
16
|
+
|
|
17
|
+
module AdminModule::Pages
|
|
18
|
+
|
|
19
|
+
class LockDefinitionsPage
|
|
20
|
+
include PageObject
|
|
21
|
+
|
|
22
|
+
page_url(:get_dynamic_url)
|
|
23
|
+
|
|
24
|
+
def get_dynamic_url
|
|
25
|
+
AdminModule.configuration.base_url + "/admin/security/ViewDefinitions.aspx?act=2&type=2"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
select_list(:locks,
|
|
29
|
+
id: 'ctl00_cntPlh_elViews_lstItems')
|
|
30
|
+
|
|
31
|
+
button(:add_button,
|
|
32
|
+
id: 'ctl00_cntPlh_elViews_btnAdd')
|
|
33
|
+
|
|
34
|
+
button(:modify_button,
|
|
35
|
+
id: 'ctl00_cntPlh_elViews_btnModify')
|
|
36
|
+
|
|
37
|
+
def get_locks
|
|
38
|
+
lock_list = []
|
|
39
|
+
Nokogiri::HTML(@browser.html).css("select#ctl00_cntPlh_elViews_lstItems>option").each do |elem|
|
|
40
|
+
lock_list << elem.text
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
lock_list
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def modify lock_name
|
|
47
|
+
#locks_options # List of option text
|
|
48
|
+
locks_element.select lock_name
|
|
49
|
+
self.modify_button
|
|
50
|
+
|
|
51
|
+
# Return the page object of the next page.
|
|
52
|
+
detail_page
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def add
|
|
56
|
+
self.add_button
|
|
57
|
+
|
|
58
|
+
# Return the page object of the next page.
|
|
59
|
+
detail_page
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
private
|
|
63
|
+
|
|
64
|
+
def detail_page
|
|
65
|
+
LockDefinitionPage.new(@browser, false)
|
|
66
|
+
end
|
|
67
|
+
end # class
|
|
68
|
+
end # module Pages
|
|
69
|
+
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
##############################################################################
|
|
2
|
+
# File:: login_page.rb
|
|
3
|
+
# Purpose:: Login page for Admin Module
|
|
4
|
+
#
|
|
5
|
+
# Author:: Jeff McAffee 11/15/2013
|
|
6
|
+
# Copyright:: Copyright (c) 2013, kTech Systems LLC. All rights reserved.
|
|
7
|
+
# Website:: http://ktechsystems.com
|
|
8
|
+
##############################################################################
|
|
9
|
+
|
|
10
|
+
require 'page-object'
|
|
11
|
+
|
|
12
|
+
module AdminModule::Pages
|
|
13
|
+
|
|
14
|
+
class LoginPage
|
|
15
|
+
include PageObject
|
|
16
|
+
|
|
17
|
+
page_url(:get_dynamic_url)
|
|
18
|
+
|
|
19
|
+
def get_dynamic_url
|
|
20
|
+
AdminModule.configuration.base_url
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
text_field(:username, :id => "ctl00_cntPlh_txtUserName" )
|
|
24
|
+
text_field(:password_mask, :id => "ctl00_cntPlh_txtPasswordMask" )
|
|
25
|
+
text_field(:password, :id => "ctl00_cntPlh_txtPassword" )
|
|
26
|
+
button(:login, :id => "ctl00_cntPlh_btnLogin" )
|
|
27
|
+
|
|
28
|
+
def login_as(username, password)
|
|
29
|
+
if !self.username? && current_url == AdminModule.configuration.base_url + '/AdminMain.aspx'
|
|
30
|
+
# We're still logged in.
|
|
31
|
+
return
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
raise ArgumentError.new("Missing username for login.\nHave you set the HSBC_envname_USER environment variable?") if username.nil?
|
|
35
|
+
|
|
36
|
+
raise ArgumentError.new("Missing password for login.\nHave you set the HSBC_envname_PASSWORD environment variable?") if password.nil?
|
|
37
|
+
|
|
38
|
+
unless current_url.downcase.include? get_dynamic_url.downcase
|
|
39
|
+
navigate_to get_dynamic_url
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
self.username = username
|
|
43
|
+
|
|
44
|
+
allow_password_entry
|
|
45
|
+
|
|
46
|
+
self.password = password
|
|
47
|
+
login
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def logout
|
|
51
|
+
navigate_to get_dynamic_url + '/user/logout.aspx'
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def allow_password_entry
|
|
55
|
+
# We used to have to click on the password mask before the page would let us enter the password itself:
|
|
56
|
+
#
|
|
57
|
+
# # For some unknown reason, we must click on a password mask input before
|
|
58
|
+
# # we can access the password field itself.
|
|
59
|
+
# password_mask_element.click
|
|
60
|
+
#
|
|
61
|
+
# Now, we have to use javascript to hide the mask and display the password field.
|
|
62
|
+
hide_mask_script = <<EOS
|
|
63
|
+
pwdmasks = document.getElementsByClassName('passwordmask');
|
|
64
|
+
pwdmasks[0].style.display = 'none';
|
|
65
|
+
pwds = document.getElementsByClassName('password');
|
|
66
|
+
pwds[0].style.display = 'block';
|
|
67
|
+
EOS
|
|
68
|
+
|
|
69
|
+
@browser.execute_script(hide_mask_script)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
end # module Pages
|
|
75
|
+
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
##############################################################################
|
|
2
|
+
# File:: parameter_page.rb
|
|
3
|
+
# Purpose:: Parameter page for AdminModule
|
|
4
|
+
#
|
|
5
|
+
# Author:: Jeff McAffee 2014-03-19
|
|
6
|
+
# Copyright:: Copyright (c) 2014, kTech Systems LLC. All rights reserved.
|
|
7
|
+
# Website:: http://ktechsystems.com
|
|
8
|
+
##############################################################################
|
|
9
|
+
require 'page-object'
|
|
10
|
+
require 'nokogiri'
|
|
11
|
+
|
|
12
|
+
module AdminModule::Pages
|
|
13
|
+
|
|
14
|
+
class ParameterPage
|
|
15
|
+
include PageObject
|
|
16
|
+
|
|
17
|
+
#page_url(:get_dynamic_url)
|
|
18
|
+
|
|
19
|
+
def get_dynamic_url
|
|
20
|
+
AdminModule.configuration.url(ParameterPage)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
text_field(:parameter_name,
|
|
24
|
+
id: 'ctl00_cntPlh_txtParamName')
|
|
25
|
+
|
|
26
|
+
select_list(:parameter_type,
|
|
27
|
+
id: 'ctl00_cntPlh_cboParameterType')
|
|
28
|
+
|
|
29
|
+
select_list(:decision_parameter,
|
|
30
|
+
id: 'ctl00_cntPlh_cboDecisionParameter')
|
|
31
|
+
|
|
32
|
+
text_field(:parameter_order,
|
|
33
|
+
id: 'ctl00_cntPlh_txtOrder')
|
|
34
|
+
|
|
35
|
+
select_list(:precision,
|
|
36
|
+
id: 'ctl00_cntPlh_ddlPrecision')
|
|
37
|
+
|
|
38
|
+
checkbox(:include_in_application_xml,
|
|
39
|
+
id: 'ctl00_cntPlh_chkIncludeInAppXML')
|
|
40
|
+
|
|
41
|
+
button(:save_button,
|
|
42
|
+
id: 'ctl00_cntPlh_btnSave')
|
|
43
|
+
|
|
44
|
+
button(:cancel_button,
|
|
45
|
+
id: 'ctl00_cntPlh_btnCancel')
|
|
46
|
+
|
|
47
|
+
def save
|
|
48
|
+
self.save_button
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def cancel
|
|
52
|
+
self.cancel_button
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def update_parameter(params)
|
|
56
|
+
require 'pry'; binding.pry
|
|
57
|
+
|
|
58
|
+
end
|
|
59
|
+
end # class ParameterPage
|
|
60
|
+
|
|
61
|
+
end # module Pages
|
|
62
|
+
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
##############################################################################
|
|
2
|
+
# File:: parameters_page.rb
|
|
3
|
+
# Purpose:: Parameters page for AdminModule
|
|
4
|
+
#
|
|
5
|
+
# Author:: Jeff McAffee 2014-03-19
|
|
6
|
+
#
|
|
7
|
+
##############################################################################
|
|
8
|
+
require 'page-object'
|
|
9
|
+
require 'nokogiri'
|
|
10
|
+
|
|
11
|
+
module AdminModule::Pages
|
|
12
|
+
|
|
13
|
+
class ParametersPage
|
|
14
|
+
include PageObject
|
|
15
|
+
|
|
16
|
+
page_url(:get_dynamic_url)
|
|
17
|
+
|
|
18
|
+
def get_dynamic_url
|
|
19
|
+
AdminModule.configuration.url(ParametersPage)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
select_list(:parameters,
|
|
23
|
+
id: 'ctl00_cntPlh_ctlParameters_lstItems')
|
|
24
|
+
|
|
25
|
+
button(:modify,
|
|
26
|
+
id: 'ctl00_cntPlh_ctlParameters_btnModify')
|
|
27
|
+
|
|
28
|
+
def edit_parameter(var_name)
|
|
29
|
+
parameters_element.select var_name
|
|
30
|
+
self.modify
|
|
31
|
+
|
|
32
|
+
# Return the url of the landing page.
|
|
33
|
+
current_url
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def get_parameters
|
|
37
|
+
vars = []
|
|
38
|
+
Nokogiri::HTML(@browser.html).css('#ctl00_cntPlh_ctlParameters_lstItems > option').each do |elem|
|
|
39
|
+
vars << elem.text
|
|
40
|
+
end
|
|
41
|
+
vars
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
end # module Pages
|
|
46
|
+
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
##############################################################################
|
|
2
|
+
# File:: ppms_page.rb
|
|
3
|
+
# Purpose:: PPM configuration page for AdminModule
|
|
4
|
+
#
|
|
5
|
+
# Author:: Jeff McAffee 2015-06-23
|
|
6
|
+
#
|
|
7
|
+
##############################################################################
|
|
8
|
+
require 'page-object'
|
|
9
|
+
|
|
10
|
+
module AdminModule::Pages
|
|
11
|
+
|
|
12
|
+
class PpmsPage
|
|
13
|
+
include PageObject
|
|
14
|
+
|
|
15
|
+
page_url(:get_dynamic_url)
|
|
16
|
+
|
|
17
|
+
def get_dynamic_url
|
|
18
|
+
AdminModule.configuration.base_url + "/admin/security/act/parameters.aspx?act=2"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
select_list(:parameters_available,
|
|
23
|
+
id: 'ctl00_cntPlh_tsParameters_lstAvailable')
|
|
24
|
+
|
|
25
|
+
select_list(:parameters_selected,
|
|
26
|
+
id: 'ctl00_cntPlh_tsParameters_lstSelected')
|
|
27
|
+
|
|
28
|
+
button(:add_parameter_button,
|
|
29
|
+
id: 'ctl00_cntPlh_tsParameters_btnAdd')
|
|
30
|
+
|
|
31
|
+
button(:add_all_parameters_button,
|
|
32
|
+
id: 'ctl00_cntPlh_tsParameters_btnAddAll')
|
|
33
|
+
|
|
34
|
+
button(:remove_parameter_button,
|
|
35
|
+
id: 'ctl00_cntPlh_tsParameters_btnRemove')
|
|
36
|
+
|
|
37
|
+
button(:remove_all_parameters_button,
|
|
38
|
+
id: 'ctl00_cntPlh_tsParameters_btnRemoveAll')
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
button(:save_button,
|
|
42
|
+
id: 'ctl00_cntPlh_cmdSave')
|
|
43
|
+
|
|
44
|
+
button(:cancel_button,
|
|
45
|
+
id: 'ctl00_cntPlh_cmdCancel')
|
|
46
|
+
|
|
47
|
+
def get_ppms_with_ids
|
|
48
|
+
vars = []
|
|
49
|
+
Nokogiri::HTML(@browser.html).css('#ctl00_cntPlh_tsParameters_lstSelected > option').each do |elem|
|
|
50
|
+
name = elem.text
|
|
51
|
+
id = elem.attributes['value'].value
|
|
52
|
+
vars << { name: name, id: id }
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
Nokogiri::HTML(@browser.html).css('#ctl00_cntPlh_tsParameters_lstAvailable > option').each do |elem|
|
|
56
|
+
name = elem.text
|
|
57
|
+
id = elem.attributes['value'].value
|
|
58
|
+
vars << { name: name, id: id }
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
vars
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def get_ppms_data
|
|
65
|
+
get_selected_ppm_options
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def set_ppms_data data
|
|
69
|
+
sync_available_and_selected_lists get_available_ppm_options,
|
|
70
|
+
parameters_available_element,
|
|
71
|
+
get_selected_ppm_options,
|
|
72
|
+
parameters_selected_element,
|
|
73
|
+
add_parameter_button_element,
|
|
74
|
+
remove_parameter_button_element,
|
|
75
|
+
data
|
|
76
|
+
|
|
77
|
+
self
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def save
|
|
81
|
+
self.save_button
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
private
|
|
85
|
+
|
|
86
|
+
include SelectListSyncable
|
|
87
|
+
|
|
88
|
+
def get_available_ppm_options
|
|
89
|
+
vars = []
|
|
90
|
+
Nokogiri::HTML(@browser.html).css('#ctl00_cntPlh_tsParameters_lstAvailable > option').each do |elem|
|
|
91
|
+
vars << elem.text
|
|
92
|
+
end
|
|
93
|
+
vars
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def get_selected_ppm_options
|
|
97
|
+
vars = []
|
|
98
|
+
Nokogiri::HTML(@browser.html).css('#ctl00_cntPlh_tsParameters_lstSelected > option').each do |elem|
|
|
99
|
+
vars << elem.text
|
|
100
|
+
end
|
|
101
|
+
vars
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def assert_all_fields_removed control, label
|
|
105
|
+
raise "Unable to remove #{label}" unless control.count == 0
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
end # module Pages
|
|
110
|
+
|