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.
Files changed (141) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.rspec +3 -0
  4. data/Gemfile +14 -0
  5. data/Guardfile +24 -0
  6. data/LICENSE +22 -0
  7. data/README.md +281 -0
  8. data/Rakefile +98 -0
  9. data/admin_module.gemspec +34 -0
  10. data/bin/admin_module +13 -0
  11. data/lib/admin_module.rb +260 -0
  12. data/lib/admin_module/cli.rb +54 -0
  13. data/lib/admin_module/cli/cli_guideline.rb +80 -0
  14. data/lib/admin_module/cli/cli_lock.rb +149 -0
  15. data/lib/admin_module/cli/cli_parameter.rb +66 -0
  16. data/lib/admin_module/cli/cli_task.rb +149 -0
  17. data/lib/admin_module/cli_old.rb +92 -0
  18. data/lib/admin_module/client.rb +146 -0
  19. data/lib/admin_module/command.rb +25 -0
  20. data/lib/admin_module/command/client_access.rb +43 -0
  21. data/lib/admin_module/command/config.rb +310 -0
  22. data/lib/admin_module/command/dc.rb +110 -0
  23. data/lib/admin_module/command/gdl.rb +71 -0
  24. data/lib/admin_module/command/lock.rb +110 -0
  25. data/lib/admin_module/command/ppm.rb +142 -0
  26. data/lib/admin_module/command/rule.rb +77 -0
  27. data/lib/admin_module/command/ruleset.rb +56 -0
  28. data/lib/admin_module/command/snapshot.rb +110 -0
  29. data/lib/admin_module/command/stage.rb +131 -0
  30. data/lib/admin_module/command/task.rb +110 -0
  31. data/lib/admin_module/config_helper.rb +33 -0
  32. data/lib/admin_module/dc.rb +133 -0
  33. data/lib/admin_module/guideline.rb +86 -0
  34. data/lib/admin_module/locks.rb +142 -0
  35. data/lib/admin_module/page_factory.rb +55 -0
  36. data/lib/admin_module/pages.rb +120 -0
  37. data/lib/admin_module/pages/dc_definitions_page.rb +73 -0
  38. data/lib/admin_module/pages/dc_detail_page.rb +187 -0
  39. data/lib/admin_module/pages/guideline_page.rb +35 -0
  40. data/lib/admin_module/pages/guideline_version_page.rb +140 -0
  41. data/lib/admin_module/pages/guidelines_page.rb +59 -0
  42. data/lib/admin_module/pages/guidelines_version_all_page.rb +116 -0
  43. data/lib/admin_module/pages/lock_definition_page.rb +178 -0
  44. data/lib/admin_module/pages/lock_definitions_page.rb +69 -0
  45. data/lib/admin_module/pages/login_page.rb +75 -0
  46. data/lib/admin_module/pages/parameter_page.rb +62 -0
  47. data/lib/admin_module/pages/parameters_page.rb +46 -0
  48. data/lib/admin_module/pages/ppms_page.rb +110 -0
  49. data/lib/admin_module/pages/rule_page.rb +68 -0
  50. data/lib/admin_module/pages/rules_page.rb +74 -0
  51. data/lib/admin_module/pages/ruleset_page.rb +64 -0
  52. data/lib/admin_module/pages/rulesets_page.rb +60 -0
  53. data/lib/admin_module/pages/select_list_syncable.rb +64 -0
  54. data/lib/admin_module/pages/snapshot_definitions_page.rb +73 -0
  55. data/lib/admin_module/pages/snapshot_detail_page.rb +246 -0
  56. data/lib/admin_module/pages/workflow_detail_page.rb +451 -0
  57. data/lib/admin_module/pages/workflow_detail_task_addl_detail_page.rb +172 -0
  58. data/lib/admin_module/pages/workflow_detail_task_mappings_page.rb +163 -0
  59. data/lib/admin_module/pages/workflow_detail_task_screens_page.rb +75 -0
  60. data/lib/admin_module/pages/workflow_details_page.rb +67 -0
  61. data/lib/admin_module/pages/workflow_task_page.rb +107 -0
  62. data/lib/admin_module/pages/workflow_tasks_page.rb +111 -0
  63. data/lib/admin_module/ppms.rb +78 -0
  64. data/lib/admin_module/rake.rb +22 -0
  65. data/lib/admin_module/rake/dc_tasks.rb +185 -0
  66. data/lib/admin_module/rake/deploy_task.rb +59 -0
  67. data/lib/admin_module/rake/gdl_tasks.rb +189 -0
  68. data/lib/admin_module/rake/lock_tasks.rb +189 -0
  69. data/lib/admin_module/rake/parameter_task.rb +86 -0
  70. data/lib/admin_module/rake/ppm_tasks.rb +248 -0
  71. data/lib/admin_module/rake/rule_tasks.rb +157 -0
  72. data/lib/admin_module/rake/snapshot_tasks.rb +223 -0
  73. data/lib/admin_module/rake/stage_tasks.rb +197 -0
  74. data/lib/admin_module/rake/stages_task.rb +197 -0
  75. data/lib/admin_module/rake/task_tasks.rb +189 -0
  76. data/lib/admin_module/rules.rb +50 -0
  77. data/lib/admin_module/rulesets.rb +42 -0
  78. data/lib/admin_module/snapshots.rb +133 -0
  79. data/lib/admin_module/stages.rb +171 -0
  80. data/lib/admin_module/tasks.rb +147 -0
  81. data/lib/admin_module/version.rb +3 -0
  82. data/old_spec/lib/admin_module/cli_configuration_spec.rb +126 -0
  83. data/old_spec/lib/admin_module/cli_create_stage_spec.rb +89 -0
  84. data/old_spec/lib/admin_module/cli_delete_rule_spec.rb +57 -0
  85. data/old_spec/lib/admin_module/cli_deploy_spec.rb +57 -0
  86. data/old_spec/lib/admin_module/cli_export_locks_spec.rb +62 -0
  87. data/old_spec/lib/admin_module/cli_export_stages_spec.rb +62 -0
  88. data/old_spec/lib/admin_module/cli_guidelines_version_all_spec.rb +58 -0
  89. data/old_spec/lib/admin_module/cli_import_locks_spec.rb +153 -0
  90. data/old_spec/lib/admin_module/cli_import_stages_spec.rb +173 -0
  91. data/old_spec/lib/admin_module/cli_modify_locks_spec.rb +128 -0
  92. data/old_spec/lib/admin_module/cli_modify_stages_spec.rb +88 -0
  93. data/old_spec/lib/admin_module/cli_rename_rule_spec.rb +53 -0
  94. data/old_spec/lib/admin_module/cli_rename_ruleset_spec.rb +53 -0
  95. data/old_spec/lib/admin_module/cli_var_spec.rb +41 -0
  96. data/old_spec/lib/admin_module/rake/deploy_task_spec.rb +85 -0
  97. data/old_spec/lib/admin_module/rake/parameter_task_spec.rb +58 -0
  98. data/old_spec/lib/admin_module/rake/rules_task_spec.rb +75 -0
  99. data/spec/data/build/test1.xml +0 -0
  100. data/spec/data/build/test2.xml +1 -0
  101. data/spec/data/import_dcs.yml +31 -0
  102. data/spec/data/import_locks.yml +4 -0
  103. data/spec/data/import_snapshots.yml +35 -0
  104. data/spec/data/import_stages.yml +4 -0
  105. data/spec/data/import_tasks.yml +25 -0
  106. data/spec/data/patch-test.xml +1 -0
  107. data/spec/data/remove_test_del_rule.xml +1 -0
  108. data/spec/data/stages.yml +518 -0
  109. data/spec/data/test_del_rule.xml +1 -0
  110. data/spec/lib/admin_module/admin_module_spec.rb +175 -0
  111. data/spec/lib/admin_module/cli_spec.rb +36 -0
  112. data/spec/lib/admin_module/client_spec.rb +158 -0
  113. data/spec/lib/admin_module/command/config_spec.rb +477 -0
  114. data/spec/lib/admin_module/command/dc_spec.rb +202 -0
  115. data/spec/lib/admin_module/command/gdl_spec.rb +139 -0
  116. data/spec/lib/admin_module/command/lock_spec.rb +207 -0
  117. data/spec/lib/admin_module/command/rule_spec.rb +163 -0
  118. data/spec/lib/admin_module/command/ruleset_spec.rb +124 -0
  119. data/spec/lib/admin_module/command/snapshot_spec.rb +202 -0
  120. data/spec/lib/admin_module/command/stage_spec.rb +259 -0
  121. data/spec/lib/admin_module/command/task_spec.rb +207 -0
  122. data/spec/lib/admin_module/dc_spec.rb +192 -0
  123. data/spec/lib/admin_module/guideline_spec.rb +177 -0
  124. data/spec/lib/admin_module/locks_spec.rb +188 -0
  125. data/spec/lib/admin_module/rules_spec.rb +110 -0
  126. data/spec/lib/admin_module/rulesets_spec.rb +85 -0
  127. data/spec/lib/admin_module/snapshot_spec.rb +192 -0
  128. data/spec/lib/admin_module/stages_spec.rb +179 -0
  129. data/spec/lib/admin_module/tasks_spec.rb +196 -0
  130. data/spec/spec_helper.rb +54 -0
  131. data/spec/support/asserts.rb +13 -0
  132. data/spec/support/data_clearing.rb +28 -0
  133. data/spec/support/dirs.rb +54 -0
  134. data/spec/support/helpers.rb +83 -0
  135. data/spec/support/lock.rb +23 -0
  136. data/spec/support/mocks.rb +213 -0
  137. data/spec/support/snapshot.rb +28 -0
  138. data/spec/support/stage.rb +22 -0
  139. data/spec/support/stage_factory.rb +138 -0
  140. data/spec/support/task.rb +23 -0
  141. metadata +381 -0
@@ -0,0 +1,86 @@
1
+ ##############################################################################
2
+ # File:: guideline.rb
3
+ # Purpose:: Interface to guideline functionality in admin module
4
+ #
5
+ # Author:: Jeff McAffee 06/30/2014
6
+ # Copyright:: Copyright (c) 2014, kTech Systems LLC. All rights reserved.
7
+ # Website:: http://ktechsystems.com
8
+ ##############################################################################
9
+
10
+ require 'admin_module/pages'
11
+
12
+ module AdminModule
13
+
14
+ class Guideline
15
+ attr_reader :page_factory
16
+
17
+ def initialize(page_factory)
18
+ @page_factory = page_factory
19
+ end
20
+
21
+ def deploy srcdir, comments = nil
22
+ files = Pathname(srcdir).each_child.select { |f| f.file? && f.extname == '.xml' }
23
+
24
+ files.each do |file|
25
+ deploy_file file, comments
26
+ end
27
+ end
28
+
29
+ def deploy_file xmlfile, comments = nil
30
+ gdlname = mapped_guideline(xmlfile)
31
+
32
+ page = guidelines_page
33
+ .open_guideline(gdlname)
34
+ .add_version
35
+ .upload(xmlfile.expand_path, comments_or_default(comments))
36
+ end
37
+
38
+ def version gdls, comments = nil
39
+ gdls = Array(gdls)
40
+ page = guidelines_page
41
+ .version_all
42
+
43
+ gdl_list = page.get_guidelines
44
+
45
+ version_list = []
46
+ not_found_list = []
47
+ gdls.each do |gdl|
48
+ if gdl_list.include? gdl
49
+ version_list << gdl
50
+ else
51
+ mapped_name = mapped_guideline gdl
52
+ if mapped_name.nil?
53
+ not_found_list << gdl
54
+ else
55
+ version_list << mapped_name
56
+ end
57
+ end
58
+ end
59
+
60
+ if not_found_list.count > 0
61
+ puts "Can't find the following guidelines in the available list:"
62
+ not_found_list.each do |nf|
63
+ puts " #{nf}"
64
+ end
65
+ return page
66
+ end
67
+
68
+ page.version(version_list, comments_or_default(comments))
69
+ end
70
+
71
+ private
72
+
73
+ def guidelines_page
74
+ page_factory.guidelines_page
75
+ end
76
+
77
+ def mapped_guideline xmlfile
78
+ AdminModule.configuration.xmlmap Pathname(xmlfile).basename('.xml').to_s
79
+ end
80
+
81
+ def comments_or_default comments
82
+ return AdminModule.configuration.default_comment if comments.nil? || comments.empty?
83
+ comments
84
+ end
85
+ end # class Guideline
86
+ end # module
@@ -0,0 +1,142 @@
1
+ ##############################################################################
2
+ # File:: locks.rb
3
+ # Purpose:: Interface to locks functionality in admin module
4
+ #
5
+ # Author:: Jeff McAffee 2014-07-18
6
+ # Copyright:: Copyright (c) 2014, kTech Systems LLC. All rights reserved.
7
+ # Website:: http://ktechsystems.com
8
+ ##############################################################################
9
+
10
+ require 'admin_module/pages'
11
+
12
+ module AdminModule
13
+
14
+ class Locks
15
+ attr_reader :page_factory
16
+
17
+ def initialize(page_factory)
18
+ @page_factory = page_factory
19
+ end
20
+
21
+ def rename src, dest
22
+ src = assert_lock_exists( extract_lock_name(src) )
23
+ dest = assert_lock_does_not_exist( extract_lock_name(dest) )
24
+
25
+ locks_page
26
+ .modify(src)
27
+ .set_name(dest)
28
+ .save
29
+ end
30
+
31
+ def list
32
+ locks_page.get_locks
33
+ end
34
+
35
+ def create lock
36
+ lock_name = assert_lock_does_not_exist( extract_lock_name(lock) )
37
+
38
+ locks_page
39
+ .add
40
+ .set_lock_data(lock)
41
+ .save
42
+ end
43
+
44
+ def read lock
45
+ lock_name = assert_lock_exists( extract_lock_name(lock) )
46
+
47
+ locks_page
48
+ .modify( lock_name )
49
+ .get_lock_data
50
+ end
51
+
52
+ def update lock
53
+ lock_name = assert_lock_exists( extract_lock_name(lock) )
54
+
55
+ locks_page
56
+ .modify( lock_name )
57
+ .set_lock_data(lock)
58
+ .save
59
+ end
60
+
61
+ #
62
+ # No functionality exists to DELETE locks.
63
+ #
64
+
65
+ def export file_path
66
+ locks = list
67
+ export_data = {}
68
+
69
+ locks.each do |lock|
70
+ export_data[lock] = read lock
71
+ end
72
+
73
+ File.open(file_path, 'w') do |f|
74
+ f.write export_data.to_yaml
75
+ end
76
+
77
+ rescue Exception => e
78
+ if e.message.include? 'No such file or directory'
79
+ raise IOError, "No such directory - #{file_path}"
80
+ else
81
+ raise e
82
+ end
83
+ end
84
+
85
+ ##
86
+ # Import lock configurations into the current environment from a file.
87
+
88
+ def import file_path, allow_create = false
89
+ raise IOError, "File not found: #{file_path}" unless File.exists?(file_path)
90
+
91
+ locks = {}
92
+ File.open(file_path, 'r') do |f|
93
+ # Read array of lock hashes.
94
+ locks = YAML.load(f)
95
+ end
96
+
97
+ existing_locks = list
98
+
99
+ locks.each do |name, data|
100
+ if existing_locks.include?(name)
101
+ update(data)
102
+ else
103
+ if allow_create
104
+ create(data)
105
+ else
106
+ puts "Unable to create #{name}. allow_create = false"
107
+ end
108
+ end
109
+ end
110
+ end
111
+
112
+ private
113
+
114
+ def locks_page
115
+ page_factory.locks_page
116
+ end
117
+
118
+ def extract_lock_name lock
119
+ lock_name = if lock.is_a? Hash
120
+ lock[:name]
121
+ else
122
+ String(lock)
123
+ end
124
+ end
125
+
126
+ def assert_lock_exists lock_name
127
+ unless list.include? lock_name
128
+ fail ArgumentError.new("A lock named '#{lock_name}' does not exist")
129
+ end
130
+
131
+ lock_name
132
+ end
133
+
134
+ def assert_lock_does_not_exist lock_name
135
+ if list.include? lock_name
136
+ fail ArgumentError.new("A lock named '#{lock_name}' already exists")
137
+ end
138
+
139
+ lock_name
140
+ end
141
+ end # class Locks
142
+ end # module
@@ -0,0 +1,55 @@
1
+ ##############################################################################
2
+ # File:: page_factory.rb
3
+ # Purpose:: Provides Page objects
4
+ #
5
+ # Author:: Jeff McAffee 06/30/2014
6
+ #
7
+ ##############################################################################
8
+
9
+ require 'admin_module/pages'
10
+
11
+ module AdminModule
12
+ class PageFactory
13
+ include AdminModule::Pages
14
+
15
+ def login_page(goto_page = true)
16
+ return Pages::LoginPage.new(browser, goto_page)
17
+ end
18
+
19
+ def guidelines_page(goto_page = true)
20
+ return Pages::GuidelinesPage.new(browser, goto_page)
21
+ end
22
+
23
+ def rulesets_page(goto_page = true)
24
+ return Pages::RulesetsPage.new(browser, goto_page)
25
+ end
26
+
27
+ def rules_page(goto_page = true)
28
+ return Pages::RulesPage.new(browser, goto_page)
29
+ end
30
+
31
+ def locks_page(goto_page = true)
32
+ return Pages::LockDefinitionsPage.new(browser, goto_page)
33
+ end
34
+
35
+ def stages_page(goto_page = true)
36
+ return Pages::WorkflowDetailsPage.new(browser, goto_page)
37
+ end
38
+
39
+ def dc_definitions_page(goto_page = true)
40
+ return Pages::DcDefinitionsPage.new(browser, goto_page)
41
+ end
42
+
43
+ def snapshot_definitions_page(goto_page = true)
44
+ return Pages::SnapshotDefinitionsPage.new(browser, goto_page)
45
+ end
46
+
47
+ def tasks_page(goto_page = true)
48
+ return Pages::WorkflowTasksPage.new(browser, goto_page)
49
+ end
50
+
51
+ def ppms_page(goto_page = true)
52
+ return Pages::PpmsPage.new(browser, goto_page)
53
+ end
54
+ end
55
+ end # AdminModule
@@ -0,0 +1,120 @@
1
+ ##############################################################################
2
+ # File:: pages.rb
3
+ # Purpose:: Require all Page classes
4
+ #
5
+ # Author:: Jeff McAffee 11/15/2013
6
+ #
7
+ ##############################################################################
8
+
9
+ require 'watir-webdriver'
10
+ require 'ktutils/os'
11
+ require 'admin_module/pages/select_list_syncable'
12
+ require 'admin_module/pages/login_page'
13
+ require 'admin_module/pages/guidelines_page'
14
+ require 'admin_module/pages/guidelines_version_all_page'
15
+ require 'admin_module/pages/guideline_page'
16
+ require 'admin_module/pages/guideline_version_page'
17
+ require 'admin_module/pages/lock_definitions_page'
18
+ require 'admin_module/pages/lock_definition_page'
19
+ require 'admin_module/pages/workflow_details_page'
20
+ require 'admin_module/pages/workflow_detail_page'
21
+ require 'admin_module/pages/workflow_detail_task_addl_detail_page'
22
+ require 'admin_module/pages/workflow_detail_task_screens_page'
23
+ require 'admin_module/pages/workflow_detail_task_mappings_page'
24
+ require 'admin_module/pages/rules_page'
25
+ require 'admin_module/pages/rule_page'
26
+ require 'admin_module/pages/rulesets_page'
27
+ require 'admin_module/pages/ruleset_page'
28
+ require 'admin_module/pages/parameters_page'
29
+ require 'admin_module/pages/parameter_page'
30
+ require 'admin_module/pages/dc_definitions_page'
31
+ require 'admin_module/pages/dc_detail_page'
32
+ require 'admin_module/pages/snapshot_definitions_page'
33
+ require 'admin_module/pages/snapshot_detail_page'
34
+ require 'admin_module/pages/workflow_task_page'
35
+ require 'admin_module/pages/workflow_tasks_page'
36
+ require 'admin_module/pages/ppms_page'
37
+
38
+ module AdminModule::Pages
39
+
40
+ ##
41
+ # Return a configured browser object. If a browser has already been created,
42
+ # this returns the existing browser.
43
+ #
44
+ # An +at_exit+ proc is created to close the browser when the program exits.
45
+
46
+ def browser
47
+ if @browser.nil?
48
+ @browser = configure_browser
49
+
50
+ at_exit do
51
+ @browser.close unless @browser.nil?
52
+ end
53
+ end
54
+
55
+ @browser
56
+ end
57
+
58
+ private
59
+
60
+ def chromium_exe
61
+ if Ktutils::OS.windows?
62
+ # Downloaded from http://chromium.woolyss.com/
63
+ # Package: Chromium Package (32-bit)
64
+ # Version: 37.0.2011.0 (272392)
65
+ chromium_exe = File.absolute_path(File.join(__FILE__, '../../../bin/chrome-win32/chrome.exe'))
66
+ else
67
+ chromium_exe = `which chromium-browser`.chomp
68
+ end
69
+ end
70
+
71
+ def configure_browser
72
+ # Specify chrome browser capabilities.
73
+ caps = Selenium::WebDriver::Remote::Capabilities.chrome
74
+ caps['chromeOptions'] = {'binary' => chromium_exe }
75
+ #caps['chromeOptions'] = {'binary' => '/opt/bin/test/chrome-27.0.1453.94.exe' }
76
+ # See http://peter.sh/experiments/chromium-command-line-switches/ for a list of available switches.
77
+ # See https://sites.google.com/a/chromium.org/chromedriver/capabilities for details on setting ChromeDriver caps.
78
+
79
+ # NOTE: The only way I've found to stop the EULA from being displayed is to
80
+ # use the user-data-dir switch and point to a dir where chrome can put the
81
+ # data indicating it (EULA) has already been accepted.
82
+
83
+ # Store chrome profile at test/chrome-data.
84
+ # user_data_dir must be expanded to a full (absolute) path. A relative path
85
+ # results in chromedriver failing to start.
86
+ user_data_dir = File.expand_path('test/chrome-data')
87
+ #puts "*** user_data_dir location: #{user_data_dir}"
88
+
89
+ # Create the data dir if it doesn't exist (or chromedriver fails to start).
90
+ unless File.exists?(user_data_dir) and File.directory?(user_data_dir)
91
+ FileUtils.makedirs user_data_dir
92
+ end
93
+
94
+ # ignore-certificate-errors: Ignores certificate-related errors.
95
+ # disable-popup-blocking: Disable pop-up blocking.
96
+ # disable-translate: Allows disabling of translate from the command line to assist with automated browser testing
97
+ # no-first-run: Skip First Run tasks, whether or not it's actually the First Run.
98
+ # log-level: Sets the minimum log level. Valid values are from 0 to 3: INFO = 0, WARNING = 1, LOG_ERROR = 2, LOG_FATAL = 3.
99
+ switches = %w[--ignore-certificate-errors --disable-popup-blocking --disable-translate --no-first-run --log-level=3]
100
+ switches << "--user-data-dir=#{user_data_dir}"
101
+
102
+ proxy_port = ENV['BROWSER_PROXY_PORT']
103
+ unless proxy_port.nil? || proxy_port.empty?
104
+ proxy_connection_string = "socks://localhost:#{proxy_port}"
105
+ switches << "--proxy-server=#{proxy_connection_string}"
106
+ end
107
+
108
+ # Create a client so we can adjust the timeout period.
109
+ client = Selenium::WebDriver::Remote::Http::Default.new
110
+
111
+ # Set the browser timeout. Default is 60 seconds.
112
+ client.timeout = AdminModule.configuration.browser_timeout
113
+
114
+ browser = Watir::Browser.new :chrome,
115
+ :switches => switches,
116
+ :http_client => client,
117
+ :service_log_path => user_data_dir + '/chromedriver.out',
118
+ :desired_capabilities => caps
119
+ end
120
+ end
@@ -0,0 +1,73 @@
1
+ ##############################################################################
2
+ # File:: dc_definitions_page.rb
3
+ # Purpose:: Data Clearing 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 DataClearing page has a type of 3:
9
+ #
10
+ # admin/security/ViewDefinitions.aspx?type=3
11
+ #
12
+ # Author:: Jeff McAffee 04/01/2015
13
+ #
14
+ ##############################################################################
15
+ require 'page-object'
16
+
17
+ module AdminModule
18
+ module Pages
19
+ class DcDefinitionsPage
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=3"
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 dc_name
50
+ definitions_element.select dc_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
+ DcDetailPage.new(@browser, false)
69
+ end
70
+ end
71
+ end
72
+ end
73
+