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,68 @@
|
|
|
1
|
+
##############################################################################
|
|
2
|
+
# File:: rule_page.rb
|
|
3
|
+
# Purpose:: Rule page for AdminModule
|
|
4
|
+
#
|
|
5
|
+
# Author:: Jeff McAffee 2014-03-17
|
|
6
|
+
#
|
|
7
|
+
##############################################################################
|
|
8
|
+
require 'page-object'
|
|
9
|
+
|
|
10
|
+
module AdminModule::Pages
|
|
11
|
+
|
|
12
|
+
class RulePage
|
|
13
|
+
include PageObject
|
|
14
|
+
|
|
15
|
+
#page_url(:get_dynamic_url)
|
|
16
|
+
|
|
17
|
+
def get_dynamic_url
|
|
18
|
+
AdminModule.configuration.base_url + "/admin/decision/rule.aspx"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
text_field(:rule_name,
|
|
22
|
+
id: 'txtRuleName')
|
|
23
|
+
|
|
24
|
+
button(:save_button,
|
|
25
|
+
id: 'btnRuleSave')
|
|
26
|
+
|
|
27
|
+
button(:cancel_button,
|
|
28
|
+
id: 'btnRuleCancel')
|
|
29
|
+
|
|
30
|
+
def set_name new_name
|
|
31
|
+
clear_browser_alert
|
|
32
|
+
|
|
33
|
+
self.rule_name = new_name
|
|
34
|
+
# Return self as page object.
|
|
35
|
+
self
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def save
|
|
39
|
+
clear_browser_alert
|
|
40
|
+
|
|
41
|
+
self.save_button
|
|
42
|
+
|
|
43
|
+
# Return the next page object.
|
|
44
|
+
RulesPage.new(@browser, false)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def cancel
|
|
48
|
+
clear_browser_alert
|
|
49
|
+
|
|
50
|
+
self.cancel_button
|
|
51
|
+
|
|
52
|
+
# Return the next page object.
|
|
53
|
+
RulesPage.new(@browser, false)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
private
|
|
57
|
+
|
|
58
|
+
def clear_browser_alert
|
|
59
|
+
if @browser.alert.exists?
|
|
60
|
+
while @browser.alert.exists?
|
|
61
|
+
@browser.alert.ok
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
end # module Pages
|
|
68
|
+
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
##############################################################################
|
|
2
|
+
# File:: rules_page.rb
|
|
3
|
+
# Purpose:: Rules page for AdminModule
|
|
4
|
+
#
|
|
5
|
+
# Author:: Jeff McAffee 2014-03-17
|
|
6
|
+
#
|
|
7
|
+
##############################################################################
|
|
8
|
+
require 'page-object'
|
|
9
|
+
require 'nokogiri'
|
|
10
|
+
|
|
11
|
+
module AdminModule::Pages
|
|
12
|
+
|
|
13
|
+
class RulesPage
|
|
14
|
+
include PageObject
|
|
15
|
+
|
|
16
|
+
page_url(:get_dynamic_url)
|
|
17
|
+
|
|
18
|
+
def get_dynamic_url
|
|
19
|
+
AdminModule.configuration.base_url + "/admin/decision/rules.aspx"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
select_list(:rules,
|
|
23
|
+
id: 'ctl00_cntPlh_ctlRules_lstItems')
|
|
24
|
+
|
|
25
|
+
button(:modify,
|
|
26
|
+
id: 'ctl00_cntPlh_ctlRules_btnModify')
|
|
27
|
+
|
|
28
|
+
button(:delete,
|
|
29
|
+
id: 'ctl00_cntPlh_ctlRules_btnDelete')
|
|
30
|
+
|
|
31
|
+
def get_rules
|
|
32
|
+
rule_list = []
|
|
33
|
+
Nokogiri::HTML(@browser.html).css("select#ctl00_cntPlh_ctlRules_lstItems>option").each do |elem|
|
|
34
|
+
rule_list << elem.text
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
rule_list
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def open_rule(rule_name)
|
|
41
|
+
#rules_options # List of option text
|
|
42
|
+
rules_element.select rule_name
|
|
43
|
+
self.modify
|
|
44
|
+
|
|
45
|
+
clear_browser_alert
|
|
46
|
+
|
|
47
|
+
# Return the page object of the next page.
|
|
48
|
+
RulePage.new(@browser, false)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def delete_rule(rule_name)
|
|
52
|
+
#rules_options # List of option text
|
|
53
|
+
rules_element.select rule_name
|
|
54
|
+
self.delete
|
|
55
|
+
|
|
56
|
+
clear_browser_alert
|
|
57
|
+
|
|
58
|
+
# Return the page object
|
|
59
|
+
self
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
private
|
|
63
|
+
|
|
64
|
+
def clear_browser_alert
|
|
65
|
+
if @browser.alert.exists?
|
|
66
|
+
while @browser.alert.exists?
|
|
67
|
+
@browser.alert.ok
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
end # module Pages
|
|
74
|
+
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
##############################################################################
|
|
2
|
+
# File:: ruleset_page.rb
|
|
3
|
+
# Purpose:: Ruleset page for AdminModule
|
|
4
|
+
#
|
|
5
|
+
# Author:: Jeff McAffee 2014-03-17
|
|
6
|
+
#
|
|
7
|
+
##############################################################################
|
|
8
|
+
require 'page-object'
|
|
9
|
+
|
|
10
|
+
module AdminModule::Pages
|
|
11
|
+
|
|
12
|
+
class RulesetPage
|
|
13
|
+
include PageObject
|
|
14
|
+
|
|
15
|
+
#page_url(:get_dynamic_url)
|
|
16
|
+
|
|
17
|
+
def get_dynamic_url
|
|
18
|
+
AdminModule.configuration.base_url + "/admin/decision/ruleset.aspx"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
text_field(:ruleset_name,
|
|
22
|
+
id: 'ctl00_cntPlh_txtName')
|
|
23
|
+
|
|
24
|
+
button(:save_button,
|
|
25
|
+
id: 'ctl00_cntPlh_btnSave')
|
|
26
|
+
|
|
27
|
+
button(:cancel_button,
|
|
28
|
+
id: 'ctl00_cntPlh_btnCancel')
|
|
29
|
+
|
|
30
|
+
def set_name new_name
|
|
31
|
+
clear_browser_alert
|
|
32
|
+
|
|
33
|
+
self.ruleset_name = new_name
|
|
34
|
+
|
|
35
|
+
self
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def save
|
|
39
|
+
clear_browser_alert
|
|
40
|
+
|
|
41
|
+
self.save_button
|
|
42
|
+
RulesetsPage.new(@browser, false)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def cancel
|
|
46
|
+
clear_browser_alert
|
|
47
|
+
|
|
48
|
+
self.cancel_button
|
|
49
|
+
RulesetsPage.new(@browser, false)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
private
|
|
53
|
+
|
|
54
|
+
def clear_browser_alert
|
|
55
|
+
if @browser.alert.exists?
|
|
56
|
+
while @browser.alert.exists?
|
|
57
|
+
@browser.alert.ok
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
end # module Pages
|
|
64
|
+
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
##############################################################################
|
|
2
|
+
# File:: rulesets_page.rb
|
|
3
|
+
# Purpose:: Rulesets page for AdminModule
|
|
4
|
+
#
|
|
5
|
+
# Author:: Jeff McAffee 2014-03-17
|
|
6
|
+
#
|
|
7
|
+
##############################################################################
|
|
8
|
+
require 'page-object'
|
|
9
|
+
require 'nokogiri'
|
|
10
|
+
|
|
11
|
+
module AdminModule::Pages
|
|
12
|
+
|
|
13
|
+
class RulesetsPage
|
|
14
|
+
include PageObject
|
|
15
|
+
|
|
16
|
+
page_url(:get_dynamic_url)
|
|
17
|
+
|
|
18
|
+
def get_dynamic_url
|
|
19
|
+
AdminModule.configuration.base_url + "/admin/decision/rulesets.aspx"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
select_list(:rulesets,
|
|
23
|
+
id: 'ctl00_cntPlh_ctlRulesets_lstItems')
|
|
24
|
+
|
|
25
|
+
button(:modify,
|
|
26
|
+
id: 'ctl00_cntPlh_ctlRulesets_btnModify')
|
|
27
|
+
|
|
28
|
+
def get_rulesets
|
|
29
|
+
ruleset_list = []
|
|
30
|
+
Nokogiri::HTML(@browser.html).css("select#ctl00_cntPlh_ctlRulesets_lstItems>option").each do |elem|
|
|
31
|
+
ruleset_list << elem.text
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
ruleset_list
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def open_ruleset(ruleset_name)
|
|
38
|
+
#rulesets_options # List of option text
|
|
39
|
+
rulesets_element.select ruleset_name
|
|
40
|
+
self.modify
|
|
41
|
+
|
|
42
|
+
clear_browser_alert
|
|
43
|
+
|
|
44
|
+
# Return the next page object
|
|
45
|
+
RulesetPage.new(@browser, false)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
private
|
|
49
|
+
|
|
50
|
+
def clear_browser_alert
|
|
51
|
+
if @browser.alert.exists?
|
|
52
|
+
while @browser.alert.exists?
|
|
53
|
+
@browser.alert.ok
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
end # module Pages
|
|
60
|
+
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
##############################################################################
|
|
2
|
+
# File:: select_list_syncable.rb
|
|
3
|
+
# Purpose:: Method to sync Available/Selected select lists
|
|
4
|
+
#
|
|
5
|
+
# Author:: Jeff McAffee 2015-06-27
|
|
6
|
+
#
|
|
7
|
+
##############################################################################
|
|
8
|
+
|
|
9
|
+
module AdminModule::Pages
|
|
10
|
+
|
|
11
|
+
module SelectListSyncable
|
|
12
|
+
|
|
13
|
+
#
|
|
14
|
+
# Sync an array of items between available and selected lists such that after
|
|
15
|
+
# syncing, the selected list will contain only the items in the array.
|
|
16
|
+
#
|
|
17
|
+
# args:
|
|
18
|
+
# available_items - list of items currently in the 'available' select element
|
|
19
|
+
# available_element - the 'available' select element
|
|
20
|
+
# selected_items - list of items currently in the 'selected' select element
|
|
21
|
+
# selected_element - the 'selected' select element
|
|
22
|
+
# add_btn - the `Add` button element
|
|
23
|
+
# remove_btn - the `Remove` button element
|
|
24
|
+
# items_to_select - array of items to sync the select elements to
|
|
25
|
+
#
|
|
26
|
+
|
|
27
|
+
def sync_available_and_selected_lists available_items, available_element, selected_items, selected_element, add_btn, remove_btn, items_to_select
|
|
28
|
+
working_set = items_to_select.dup
|
|
29
|
+
items_to_remove = Array.new
|
|
30
|
+
items_to_add = Array.new
|
|
31
|
+
|
|
32
|
+
# Build a list of indices of items to remove from the selected list
|
|
33
|
+
selected_items.each_index do |i|
|
|
34
|
+
if working_set.include? selected_items[i]
|
|
35
|
+
working_set.delete selected_items[i]
|
|
36
|
+
else
|
|
37
|
+
items_to_remove << i
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Build a list of indices of items to add from the available list
|
|
42
|
+
available_items.each_index do |i|
|
|
43
|
+
if working_set.include? available_items[i]
|
|
44
|
+
items_to_add << i
|
|
45
|
+
working_set.delete available_items[i]
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Select and remove all params in the removal list
|
|
50
|
+
items_to_remove.each do |i|
|
|
51
|
+
selected_element.options[i].click
|
|
52
|
+
end
|
|
53
|
+
remove_btn.click if items_to_remove.count > 0
|
|
54
|
+
|
|
55
|
+
# Select and add all params in the add list
|
|
56
|
+
items_to_add.each do |i|
|
|
57
|
+
available_element.options[i].click
|
|
58
|
+
end
|
|
59
|
+
add_btn.click if items_to_add.count > 0
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
end # module Pages
|
|
64
|
+
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
##############################################################################
|
|
2
|
+
# File:: snapshot_definitions_page.rb
|
|
3
|
+
# Purpose:: Snapshot Definitions page
|
|
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 Snapshot page has a type of 1:
|
|
9
|
+
#
|
|
10
|
+
# admin/security/ViewDefinitions.aspx?type=1
|
|
11
|
+
#
|
|
12
|
+
# Author:: Jeff McAffee 2015-04-05
|
|
13
|
+
#
|
|
14
|
+
##############################################################################
|
|
15
|
+
require 'page-object'
|
|
16
|
+
|
|
17
|
+
module AdminModule
|
|
18
|
+
module Pages
|
|
19
|
+
class SnapshotDefinitionsPage
|
|
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?type=1&Act=2"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
select_list(:definitions,
|
|
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
|
+
button(:delete_button,
|
|
38
|
+
id: 'ctl00_cntPlh_elViews_btnDelete')
|
|
39
|
+
|
|
40
|
+
def get_definitions
|
|
41
|
+
defn_list = []
|
|
42
|
+
Nokogiri::HTML(@browser.html).css("select#ctl00_cntPlh_elViews_lstItems>option").each do |elem|
|
|
43
|
+
defn_list << elem.text
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
defn_list
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def modify name
|
|
50
|
+
definitions_element.select name
|
|
51
|
+
self.modify_button
|
|
52
|
+
|
|
53
|
+
# Return the page object of the next page.
|
|
54
|
+
detail_page
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def add
|
|
58
|
+
self.add_button
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
# Return the page object of the next page.
|
|
62
|
+
detail_page
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
private
|
|
66
|
+
|
|
67
|
+
def detail_page
|
|
68
|
+
SnapshotDetailPage.new(@browser, false)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
##############################################################################
|
|
2
|
+
# File:: snapshot_detail_page.rb
|
|
3
|
+
# Purpose:: Snapshot definition edit page for AdminModule
|
|
4
|
+
#
|
|
5
|
+
# Author:: Jeff McAffee 2015-04-05
|
|
6
|
+
#
|
|
7
|
+
##############################################################################
|
|
8
|
+
require 'page-object'
|
|
9
|
+
|
|
10
|
+
module AdminModule::Pages
|
|
11
|
+
|
|
12
|
+
class SnapshotDetailPage
|
|
13
|
+
include PageObject
|
|
14
|
+
|
|
15
|
+
#page_url(:get_dynamic_url)
|
|
16
|
+
|
|
17
|
+
#def get_dynamic_url
|
|
18
|
+
# AdminModule.configuration.url(SnapshotDetailPage)
|
|
19
|
+
#end
|
|
20
|
+
|
|
21
|
+
text_field(:name,
|
|
22
|
+
id: 'ctl00_cntPlh_txtName')
|
|
23
|
+
|
|
24
|
+
text_area(:description,
|
|
25
|
+
id: 'ctl00_cntPlh_txtDesc')
|
|
26
|
+
|
|
27
|
+
select_list(:decision_data,
|
|
28
|
+
id: 'ctl00_cntPlh_ddlDecision')
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# Parameters Tab
|
|
32
|
+
#
|
|
33
|
+
|
|
34
|
+
link(:parameters_tab,
|
|
35
|
+
text: 'Parameters')
|
|
36
|
+
|
|
37
|
+
select_list(:params_available,
|
|
38
|
+
id: 'ctl00_cntPlh_tsParams_lstAvailable')
|
|
39
|
+
|
|
40
|
+
select_list(:params_selected,
|
|
41
|
+
id: 'ctl00_cntPlh_tsParams_lstSelected')
|
|
42
|
+
|
|
43
|
+
button(:add_param_button,
|
|
44
|
+
id: 'ctl00_cntPlh_tsParams_btnAdd')
|
|
45
|
+
|
|
46
|
+
button(:add_all_params_button,
|
|
47
|
+
id: 'ctl00_cntPlh_tsParams_btnAddAll')
|
|
48
|
+
|
|
49
|
+
button(:remove_param_button,
|
|
50
|
+
id: 'ctl00_cntPlh_tsParams_btnRemove')
|
|
51
|
+
|
|
52
|
+
button(:remove_all_params_button,
|
|
53
|
+
id: 'ctl00_cntPlh_tsParams_btnRemoveAll')
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
# DTS/UDF Tab
|
|
57
|
+
#
|
|
58
|
+
|
|
59
|
+
link(:dts_tab,
|
|
60
|
+
text: 'DTS/UDF')
|
|
61
|
+
|
|
62
|
+
select_list(:dts_available,
|
|
63
|
+
id: 'ctl00_cntPlh_tsSnapshotDTS_lstAvailable')
|
|
64
|
+
|
|
65
|
+
select_list(:dts_selected,
|
|
66
|
+
id: 'ctl00_cntPlh_tsSnapshotDTS_lstSelected')
|
|
67
|
+
|
|
68
|
+
button(:add_dts_button,
|
|
69
|
+
id: 'ctl00_cntPlh_tsSnapshotDTS_btnAdd')
|
|
70
|
+
|
|
71
|
+
button(:add_all_dts_button,
|
|
72
|
+
id: 'ctl00_cntPlh_tsSnapshotDTS_btnAddAll')
|
|
73
|
+
|
|
74
|
+
button(:remove_dts_button,
|
|
75
|
+
id: 'ctl00_cntPlh_tsSnapshotDTS_btnRemove')
|
|
76
|
+
|
|
77
|
+
button(:remove_all_dts_button,
|
|
78
|
+
id: 'ctl00_cntPlh_tsSnapshotDTS_btnRemoveAll')
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
# Snapshot Control Fields Tab
|
|
82
|
+
#
|
|
83
|
+
|
|
84
|
+
link(:control_fields_tab,
|
|
85
|
+
text: 'Snapshot Control Fields')
|
|
86
|
+
|
|
87
|
+
select_list(:control_fields_available,
|
|
88
|
+
id: 'ctl00_cntPlh_tsSnapshotControls_lstAvailable')
|
|
89
|
+
|
|
90
|
+
select_list(:control_fields_selected,
|
|
91
|
+
id: 'ctl00_cntPlh_tsSnapshotControls_lstSelected')
|
|
92
|
+
|
|
93
|
+
button(:add_control_field_button,
|
|
94
|
+
id: 'ctl00_cntPlh_tsSnapshotControls_btnAdd')
|
|
95
|
+
|
|
96
|
+
button(:add_all_control_fields_button,
|
|
97
|
+
id: 'ctl00_cntPlh_tsSnapshotControls_btnAddAll')
|
|
98
|
+
|
|
99
|
+
button(:remove_control_field_button,
|
|
100
|
+
id: 'ctl00_cntPlh_tsSnapshotControls_btnRemove')
|
|
101
|
+
|
|
102
|
+
button(:remove_all_control_fields_button,
|
|
103
|
+
id: 'ctl00_cntPlh_tsSnapshotControls_btnRemoveAll')
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
button(:save_button,
|
|
107
|
+
id: 'ctl00_cntPlh_btnSave')
|
|
108
|
+
|
|
109
|
+
button(:cancel_button,
|
|
110
|
+
id: 'ctl00_cntPlh_btnCancel')
|
|
111
|
+
|
|
112
|
+
def get_definition_data
|
|
113
|
+
data = { name: self.name,
|
|
114
|
+
description: self.description,
|
|
115
|
+
parameters: [],
|
|
116
|
+
dts: [],
|
|
117
|
+
control_fields: [],
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
self.parameters_tab
|
|
121
|
+
data[:parameters] = get_selected_parameter_options
|
|
122
|
+
|
|
123
|
+
self.dts_tab
|
|
124
|
+
data[:dts] = get_selected_dts_options
|
|
125
|
+
|
|
126
|
+
self.control_fields_tab
|
|
127
|
+
data[:control_fields] = self.control_fields_selected_options
|
|
128
|
+
|
|
129
|
+
data
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def set_definition_data data
|
|
133
|
+
self.name = data[:name]
|
|
134
|
+
self.description = data[:description]
|
|
135
|
+
|
|
136
|
+
self.parameters_tab
|
|
137
|
+
set_parameter_fields data[:parameters]
|
|
138
|
+
|
|
139
|
+
self.dts_tab
|
|
140
|
+
set_dts_fields data[:dts]
|
|
141
|
+
|
|
142
|
+
self.control_fields_tab
|
|
143
|
+
set_control_fields data[:control_fields]
|
|
144
|
+
|
|
145
|
+
self
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
def save
|
|
149
|
+
self.save_button
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
def set_name name
|
|
153
|
+
self.name = name
|
|
154
|
+
|
|
155
|
+
self
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
private
|
|
159
|
+
|
|
160
|
+
include SelectListSyncable
|
|
161
|
+
|
|
162
|
+
def get_available_parameter_options
|
|
163
|
+
vars = []
|
|
164
|
+
Nokogiri::HTML(@browser.html).css('#ctl00_cntPlh_tsParams_lstAvailable > option').each do |elem|
|
|
165
|
+
vars << elem.text
|
|
166
|
+
end
|
|
167
|
+
vars
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
def get_selected_parameter_options
|
|
171
|
+
vars = []
|
|
172
|
+
Nokogiri::HTML(@browser.html).css('#ctl00_cntPlh_tsParams_lstSelected > option').each do |elem|
|
|
173
|
+
vars << elem.text
|
|
174
|
+
end
|
|
175
|
+
vars
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
def get_available_dts_options
|
|
179
|
+
vars = []
|
|
180
|
+
Nokogiri::HTML(@browser.html).css('#ctl00_cntPlh_tsSnapshotDTS_lstAvailable > option').each do |elem|
|
|
181
|
+
vars << elem.text
|
|
182
|
+
end
|
|
183
|
+
vars
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
def get_selected_dts_options
|
|
187
|
+
vars = []
|
|
188
|
+
Nokogiri::HTML(@browser.html).css('#ctl00_cntPlh_tsSnapshotDTS_lstSelected > option').each do |elem|
|
|
189
|
+
vars << elem.text
|
|
190
|
+
end
|
|
191
|
+
vars
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
def get_available_control_field_options
|
|
195
|
+
vars = []
|
|
196
|
+
Nokogiri::HTML(@browser.html).css('#ctl00_cntPlh_tsSnapshotControls_lstAvailable > option').each do |elem|
|
|
197
|
+
vars << elem.text
|
|
198
|
+
end
|
|
199
|
+
vars
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
def get_selected_control_field_options
|
|
203
|
+
vars = []
|
|
204
|
+
Nokogiri::HTML(@browser.html).css('#ctl00_cntPlh_tsSnapshotControls_lstSelected > option').each do |elem|
|
|
205
|
+
vars << elem.text
|
|
206
|
+
end
|
|
207
|
+
vars
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
def set_parameter_fields data
|
|
211
|
+
sync_available_and_selected_lists get_available_parameter_options,
|
|
212
|
+
params_available_element,
|
|
213
|
+
get_selected_parameter_options,
|
|
214
|
+
params_selected_element,
|
|
215
|
+
add_param_button_element,
|
|
216
|
+
remove_param_button_element,
|
|
217
|
+
data
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
def set_dts_fields data
|
|
221
|
+
sync_available_and_selected_lists get_available_dts_options,
|
|
222
|
+
dts_available_element,
|
|
223
|
+
get_selected_dts_options,
|
|
224
|
+
dts_selected_element,
|
|
225
|
+
add_dts_button_element,
|
|
226
|
+
remove_dts_button_element,
|
|
227
|
+
data
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
def set_control_fields data
|
|
231
|
+
sync_available_and_selected_lists get_available_control_field_options,
|
|
232
|
+
control_fields_available_element,
|
|
233
|
+
get_selected_control_field_options,
|
|
234
|
+
control_fields_selected_element,
|
|
235
|
+
add_control_field_button_element,
|
|
236
|
+
remove_control_field_button_element,
|
|
237
|
+
data
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
def assert_all_fields_removed control, label
|
|
241
|
+
raise "Unable to remove #{label} fields" unless control.count == 0
|
|
242
|
+
end
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
end # module Pages
|
|
246
|
+
|