admin_module 0.1.7 → 0.1.8

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 (111) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/Gemfile +2 -0
  4. data/README.md +7 -0
  5. data/admin_module.gemspec +3 -1
  6. data/{bin → exe}/admin_module +0 -0
  7. data/lib/admin_module.rb +9 -0
  8. data/lib/admin_module/command/config.rb +20 -0
  9. data/lib/admin_module/command/gdl.rb +15 -0
  10. data/lib/admin_module/guideline.rb +8 -0
  11. data/lib/admin_module/page_factory.rb +43 -2
  12. data/lib/admin_module/pages.rb +38 -81
  13. data/lib/admin_module/pages/guideline_page.rb +54 -1
  14. data/lib/admin_module/pages/guideline_page_400.rb +87 -0
  15. data/lib/admin_module/pages/guideline_version_page.rb +9 -5
  16. data/lib/admin_module/pages/guidelines_page.rb +40 -34
  17. data/lib/admin_module/pages/guidelines_page_400.rb +65 -0
  18. data/lib/admin_module/pages/guidelines_version_all_page.rb +79 -72
  19. data/lib/admin_module/pages/guidelines_version_all_page_400.rb +122 -0
  20. data/lib/admin_module/pages/login_page.rb +2 -2
  21. data/lib/admin_module/pages/login_page_400.rb +73 -0
  22. data/lib/admin_module/version.rb +1 -1
  23. data/spec/data/config/no_ams_version.admin_module +11 -0
  24. data/spec/data/html/guideline-400.html +2713 -0
  25. data/spec/data/html/guideline-400_files/BindChildren.js +852 -0
  26. data/spec/data/html/guideline-400_files/CVlogo.jpg +0 -0
  27. data/spec/data/html/guideline-400_files/Guideline.js +301 -0
  28. data/spec/data/html/guideline-400_files/OptimalOutcome.png +0 -0
  29. data/spec/data/html/guideline-400_files/WebResource(1).axd +561 -0
  30. data/spec/data/html/guideline-400_files/WebResource.axd +548 -0
  31. data/spec/data/html/guideline-400_files/styles.css +444 -0
  32. data/spec/data/html/guideline-400_files/styles2.css +115 -0
  33. data/spec/data/html/guideline-400_files/tab.css +50 -0
  34. data/spec/data/html/guideline-400_files/tabpane.js +297 -0
  35. data/spec/data/html/guideline.html +1809 -0
  36. data/spec/data/html/guideline_files/BindChildren.js +799 -0
  37. data/spec/data/html/guideline_files/Guideline.js +300 -0
  38. data/spec/data/html/guideline_files/LeftMenu.html +0 -0
  39. data/spec/data/html/guideline_files/MainFrame.html +18 -0
  40. data/spec/data/html/guideline_files/ScriptResource.axd +3725 -0
  41. data/spec/data/html/guideline_files/Stylesheet.css +1545 -0
  42. data/spec/data/html/guideline_files/WebResource(1).axd +0 -0
  43. data/spec/data/html/guideline_files/WebResource(2).axd +566 -0
  44. data/spec/data/html/guideline_files/WebResource(3).axd +219 -0
  45. data/spec/data/html/guideline_files/WebResource.axd +696 -0
  46. data/spec/data/html/guideline_files/framebar.html +0 -0
  47. data/spec/data/html/guideline_files/guideline.html +0 -0
  48. data/spec/data/html/guideline_files/home.png +0 -0
  49. data/spec/data/html/guideline_files/jquery-ui.css +578 -0
  50. data/spec/data/html/guideline_files/jquery.js +7 -0
  51. data/spec/data/html/guideline_files/slidebar.gif +29 -0
  52. data/spec/data/html/guideline_files/tab.css +49 -0
  53. data/spec/data/html/guideline_files/tabpane.js +297 -0
  54. data/spec/data/html/guidelines-400.html +368 -0
  55. data/spec/data/html/guidelines-400_files/CVlogo.jpg +0 -0
  56. data/spec/data/html/guidelines-400_files/EditListSearchHelper.js +141 -0
  57. data/spec/data/html/guidelines-400_files/OptimalOutcome.png +0 -0
  58. data/spec/data/html/guidelines-400_files/WebResource(1).axd +561 -0
  59. data/spec/data/html/guidelines-400_files/WebResource.axd +548 -0
  60. data/spec/data/html/guidelines-400_files/menu.css +29 -0
  61. data/spec/data/html/guidelines-400_files/menu.js +48 -0
  62. data/spec/data/html/guidelines-400_files/shadow.gif +0 -0
  63. data/spec/data/html/guidelines-400_files/styles.css +444 -0
  64. data/spec/data/html/guidelines-400_files/styles2.css +115 -0
  65. data/spec/data/html/guidelines.html +217 -0
  66. data/spec/data/html/guidelines_files/EditListSearchHelper.js +123 -0
  67. data/spec/data/html/guidelines_files/ScriptResource.axd +3725 -0
  68. data/spec/data/html/guidelines_files/Stylesheet.css +1545 -0
  69. data/spec/data/html/guidelines_files/jquery-ui.css +578 -0
  70. data/spec/data/html/login.aspx.html +293 -0
  71. data/spec/data/html/login.aspx_files/ScriptResource.axd +3332 -0
  72. data/spec/data/html/login.aspx_files/Stylesheet.css +1545 -0
  73. data/spec/data/html/login.aspx_files/jquery-ui.css +578 -0
  74. data/spec/data/html/login.aspx_files/jquery.js +7 -0
  75. data/spec/data/html/login400.aspx.html +191 -0
  76. data/spec/data/html/login400.aspx_files/WebResource(1).axd +561 -0
  77. data/spec/data/html/login400.aspx_files/WebResource.axd +548 -0
  78. data/spec/data/html/login400.aspx_files/styles.css +444 -0
  79. data/spec/data/html/version_all_guidelines-400.html +702 -0
  80. data/spec/data/html/version_all_guidelines-400_files/CVlogo.jpg +0 -0
  81. data/spec/data/html/version_all_guidelines-400_files/Calendar.js +521 -0
  82. data/spec/data/html/version_all_guidelines-400_files/OptimalOutcome.png +0 -0
  83. data/spec/data/html/version_all_guidelines-400_files/TwoSelects.js +300 -0
  84. data/spec/data/html/version_all_guidelines-400_files/menu.css +29 -0
  85. data/spec/data/html/version_all_guidelines-400_files/menu.js +48 -0
  86. data/spec/data/html/version_all_guidelines-400_files/shadow.gif +0 -0
  87. data/spec/data/html/version_all_guidelines-400_files/styles(1).css +134 -0
  88. data/spec/data/html/version_all_guidelines-400_files/styles.css +444 -0
  89. data/spec/data/html/version_all_guidelines-400_files/styles2.css +115 -0
  90. data/spec/data/html/version_all_guidelines.html +560 -0
  91. data/spec/data/html/version_all_guidelines_files/Calendar.js +521 -0
  92. data/spec/data/html/version_all_guidelines_files/ScriptResource.axd +3725 -0
  93. data/spec/data/html/version_all_guidelines_files/Stylesheet.css +1545 -0
  94. data/spec/data/html/version_all_guidelines_files/TwoSelects.js +304 -0
  95. data/spec/data/html/version_all_guidelines_files/jquery-ui.css +578 -0
  96. data/spec/lib/admin_module/command/config_spec.rb +27 -0
  97. data/spec/lib/admin_module/command/gdl_spec.rb +31 -0
  98. data/spec/lib/admin_module/configuration_spec.rb +47 -0
  99. data/spec/lib/admin_module/guideline_spec.rb +26 -0
  100. data/spec/lib/admin_module/page_factory_spec.rb +72 -0
  101. data/spec/lib/admin_module/pages/guideline_page_400_spec.rb +51 -0
  102. data/spec/lib/admin_module/pages/guideline_page_spec.rb +50 -0
  103. data/spec/lib/admin_module/pages/guidelines_page_400_spec.rb +92 -0
  104. data/spec/lib/admin_module/pages/guidelines_page_spec.rb +91 -0
  105. data/spec/lib/admin_module/pages/guidelines_version_all_page_400_spec.rb +102 -0
  106. data/spec/lib/admin_module/pages/guidelines_version_all_page_spec.rb +105 -0
  107. data/spec/lib/admin_module/pages/login_page_400_spec.rb +42 -0
  108. data/spec/lib/admin_module/pages/login_page_spec.rb +33 -0
  109. data/spec/support/html_spec.rb +26 -0
  110. data/spec/support/mocks.rb +23 -0
  111. metadata +191 -5
@@ -122,17 +122,21 @@ EOS
122
122
  return
123
123
  end
124
124
 
125
+ version_row = latest_version
126
+
127
+ # We have to account for HTML encodings when comparing comments.
128
+ unless version_row.to_s.include?(CGI.escapeHTML(comments))
129
+ add_error("Version upload not completed. Comment not found.")
130
+ end
131
+ end
132
+
133
+ def latest_version
125
134
  doc = Nokogiri::HTML(@browser.html)
126
135
  # The specific version notes TD element:
127
136
  #version_notes_row_1 = doc.css("#dgrVersions > tbody > tr:nth-child(2) > td:nth-child(13)")
128
137
 
129
138
  # The entire 1st version row (TR) element:
130
139
  version_row = doc.css("#dgrVersions > tbody > tr:nth-child(2)")
131
-
132
- # We have to account for HTML encodings when comparing comments.
133
- unless version_row.to_s.include?(CGI.escapeHTML(comments))
134
- add_error("Version upload not completed. Comment not found.")
135
- end
136
140
  end
137
141
  end # class GuidelineVersionPage
138
142
 
@@ -8,52 +8,58 @@
8
8
  require 'page-object'
9
9
 
10
10
  module AdminModule::Pages
11
+ class GuidelinesPage
12
+ include PageObject
11
13
 
12
- class GuidelinesPage
13
- include PageObject
14
+ page_url(:get_dynamic_url)
14
15
 
15
- page_url(:get_dynamic_url)
16
-
17
- def get_dynamic_url
18
- AdminModule.configuration.base_url + "/admin/decision/guidelines.aspx"
19
- end
20
-
21
- select_list(:guidelines,
22
- id: 'ctl00_cntPlh_ctlGuidelines_lstItems')
23
-
24
- button(:modify,
25
- id: 'ctl00_cntPlh_ctlGuidelines_btnModify')
16
+ def get_dynamic_url
17
+ AdminModule.configuration.base_url + "/admin/decision/guidelines.aspx"
18
+ end
26
19
 
27
- button(:version_all_button,
28
- text: 'Version All')
20
+ # This must be a class method so it's available for the control
21
+ # method generation methods.
22
+ #
29
23
 
30
- def get_guidelines
31
- gdl_list = []
32
- Nokogiri::HTML(@browser.html).css("select#ctl00_cntPlh_ctlGuidelines_lstItems>option").each do |elem|
33
- gdl_list << elem.text
24
+ def self.gdls_id
25
+ 'ctl00_cntPlh_ctlGuidelines_lstItems'
34
26
  end
35
27
 
36
- gdl_list
37
- end
28
+ select_list(:guidelines,
29
+ id: gdls_id)
38
30
 
39
- def open_guideline(gdl_name)
40
- #guidelines_options # List of option text
41
- guidelines_element.select gdl_name
42
- self.modify
31
+ button(:modify,
32
+ id: 'ctl00_cntPlh_ctlGuidelines_btnModify')
43
33
 
44
- # Return the next page object.
45
- GuidelinePage.new(@browser, false)
46
- end
34
+ button(:version_all_button,
35
+ text: 'Version All')
47
36
 
48
- def version_all
49
- version_all_button
37
+ def get_guidelines
38
+ gdl_list = []
39
+ Nokogiri::HTML(@browser.html).css("select##{GuidelinesPage.gdls_id}>option").each do |elem|
40
+ gdl_list << elem.text
41
+ end
50
42
 
51
- # Return the next page object.
52
- GuidelinesVersionAllPage.new(@browser, false)
53
- end
43
+ gdl_list
44
+ end
45
+
46
+ def open_guideline(gdl_name)
47
+ #guidelines_options # List of option text
48
+ guidelines_element.select gdl_name
49
+ self.modify
54
50
 
51
+ # Return the next page object.
52
+ AdminModule::ConfigHelper.page_factory.guideline_page(false)
53
+ #GuidelinePage.new(@browser, false)
54
+ end
55
55
 
56
- end
56
+ def version_all
57
+ version_all_button
57
58
 
59
+ # Return the next page object.
60
+ AdminModule::ConfigHelper.page_factory.guidelines_version_all_page(false)
61
+ #GuidelinesVersionAllPage.new(@browser, false)
62
+ end
63
+ end
58
64
  end # module Pages
59
65
 
@@ -0,0 +1,65 @@
1
+ ##############################################################################
2
+ # File:: guidelines_page_400.rb
3
+ # Purpose:: Guidelines page for AdminModule
4
+ #
5
+ # Author:: Jeff McAffee 2015-10-08
6
+ #
7
+ ##############################################################################
8
+ require 'page-object'
9
+
10
+ module AdminModule::Pages
11
+ class GuidelinesPage400
12
+ include PageObject
13
+
14
+ page_url(:get_dynamic_url)
15
+
16
+ def get_dynamic_url
17
+ AdminModule.configuration.base_url + "/admin/decision/guidelines.aspx"
18
+ end
19
+
20
+ # This must be a class method so it's available for the control
21
+ # method generation methods.
22
+ #
23
+
24
+ def self.gdls_id
25
+ 'ctlGuidelines_lstItems'
26
+ end
27
+
28
+ select_list(:guidelines,
29
+ id: gdls_id)
30
+
31
+ button(:modify,
32
+ id: 'ctlGuidelines_btnModify')
33
+
34
+ button(:version_all_button,
35
+ text: 'Version All')
36
+
37
+ def get_guidelines
38
+ gdl_list = []
39
+ Nokogiri::HTML(@browser.html).css("select##{GuidelinesPage400.gdls_id}>option").each do |elem|
40
+ gdl_list << elem.text
41
+ end
42
+
43
+ gdl_list
44
+ end
45
+
46
+ def open_guideline(gdl_name)
47
+ #guidelines_options # List of option text
48
+ guidelines_element.select gdl_name
49
+ self.modify
50
+
51
+ # Return the next page object.
52
+ AdminModule::ConfigHelper.page_factory.guideline_page(false)
53
+ #GuidelinePage.new(@browser, false)
54
+ end
55
+
56
+ def version_all
57
+ version_all_button
58
+
59
+ # Return the next page object.
60
+ AdminModule::ConfigHelper.page_factory.guidelines_version_all_page(false)
61
+ #GuidelinesVersionAllPage.new(@browser, false)
62
+ end
63
+ end
64
+ end # module Pages
65
+
@@ -9,108 +9,115 @@ require 'page-object'
9
9
 
10
10
  module AdminModule::Pages
11
11
 
12
- class GuidelinesVersionAllPage
13
- include PageObject
12
+ class GuidelinesVersionAllPage
13
+ include PageObject
14
14
 
15
- attr_reader :errors
15
+ attr_reader :errors
16
16
 
17
- #page_url(:get_dynamic_url)
17
+ #page_url(:get_dynamic_url)
18
18
 
19
- def get_dynamic_url
20
- AdminModule.configuration.base_url + "/admin/decision/versionAllGuideline.aspx"
21
- end
19
+ def get_dynamic_url
20
+ AdminModule.configuration.base_url + "/admin/decision/versionAllGuideline.aspx"
21
+ end
22
22
 
23
- select_list(:guidelines_available,
24
- id: 'ctl00_cntPlh_tsGuidelines_lstAvailable' )
23
+ # This must be a class method so it's available for the control
24
+ # method generation methods.
25
+ #
25
26
 
26
- select_list(:guidelines_selected,
27
- id: 'ctl00_cntPlh_tsGuidelines_lstSelected' )
27
+ def self.available_gdls_id
28
+ 'ctl00_cntPlh_tsGuidelines_lstAvailable'
29
+ end
28
30
 
29
- button(:add_guideline_button,
30
- id: 'ctl00_cntPlh_tsGuidelines_btnAdd' )
31
+ select_list(:guidelines_available,
32
+ id: 'ctl00_cntPlh_tsGuidelines_lstAvailable' )
31
33
 
32
- text_area(:version_notes,
33
- id: 'ctl00_cntPlh_txtVersionAllNotes')
34
+ select_list(:guidelines_selected,
35
+ id: 'ctl00_cntPlh_tsGuidelines_lstSelected' )
34
36
 
35
- button(:save_button,
36
- id: 'ctl00_cntPlh_cmdSave')
37
+ button(:add_guideline_button,
38
+ id: 'ctl00_cntPlh_tsGuidelines_btnAdd' )
37
39
 
38
- button(:cancel_button,
39
- id: 'ctl00_cntPlh_cmdCancel')
40
+ text_area(:version_notes,
41
+ id: 'ctl00_cntPlh_txtVersionAllNotes')
40
42
 
41
- div(:version_errors,
42
- id: 'ctl00_cntPlh_ctlErrors_vsmErrors')
43
+ button(:save_button,
44
+ id: 'ctl00_cntPlh_cmdSave')
43
45
 
44
- def errors
45
- @errors ||= []
46
- end
46
+ button(:cancel_button,
47
+ id: 'ctl00_cntPlh_cmdCancel')
47
48
 
48
- def get_guidelines
49
- gdl_list = []
50
- Nokogiri::HTML(@browser.html).css("select#ctl00_cntPlh_tsGuidelines_lstAvailable>option").each do |elem|
51
- gdl_list << elem.text
52
- end
49
+ div(:version_errors,
50
+ id: 'ctl00_cntPlh_ctlErrors_vsmErrors')
53
51
 
54
- gdl_list
55
- end
52
+ def errors
53
+ @errors ||= []
54
+ end
56
55
 
57
- def version(gdl_names, comments = nil)
58
- gdl_names = Array(gdl_names)
56
+ def get_guidelines
57
+ gdl_list = []
58
+ Nokogiri::HTML(@browser.html).css("select##{GuidelinesVersionAllPage.available_gdls_id}>option").each do |elem|
59
+ gdl_list << elem.text
60
+ end
59
61
 
60
- if comments.nil?
61
- comments = "auto version"
62
+ gdl_list
62
63
  end
63
- self.version_notes = comments
64
64
 
65
- reset_errors
65
+ def version(gdl_names, comments = nil)
66
+ gdl_names = Array(gdl_names)
66
67
 
67
- # Add guidelines to be versioned to the selected area.
68
- gdl_names.each do |gdl|
69
- guidelines_available_element.select(gdl)
70
- self.add_guideline_button
71
- end
68
+ if comments.nil?
69
+ comments = "auto version"
70
+ end
71
+ self.version_notes = comments
72
72
 
73
- self.save_button
73
+ reset_errors
74
74
 
75
- capture_errors
75
+ # Add guidelines to be versioned to the selected area.
76
+ gdl_names.each do |gdl|
77
+ guidelines_available_element.select(gdl)
78
+ self.add_guideline_button
79
+ end
76
80
 
77
- # Return the url of the version guideline page.
78
- current_url
81
+ self.save_button
79
82
 
80
- rescue Timeout::Error => e
81
- add_error 'Timeout occurred. Try adjusting the browser_timeout configuration option.'
83
+ capture_errors
82
84
 
83
- rescue Exception => e
84
- add_error e.message
85
+ # Return the url of the version guideline page.
86
+ current_url
85
87
 
86
- ensure
87
- raise_if_errors
88
- end
88
+ rescue Timeout::Error => e
89
+ add_error 'Timeout occurred. Try adjusting the browser_timeout configuration option.'
89
90
 
90
- def reset_errors
91
- errors = []
92
- end
91
+ rescue Exception => e
92
+ add_error e.message
93
93
 
94
- def has_errors?
95
- errors.size > 0
96
- end
94
+ ensure
95
+ raise_if_errors
96
+ end
97
97
 
98
- def add_error err_msg
99
- errors << err_msg
100
- end
98
+ def reset_errors
99
+ errors = []
100
+ end
101
101
 
102
- def capture_errors
103
- add_error(version_errors) unless (!version_errors? || version_errors.empty?)
104
- end
102
+ def has_errors?
103
+ errors.size > 0
104
+ end
105
105
 
106
- def raise_if_errors
107
- if has_errors?
108
- error = ''
109
- errors.each { |err| error << err + "\n" }
110
- raise error
106
+ def add_error err_msg
107
+ errors << err_msg
111
108
  end
112
- end
113
- end # class GuidelinesVersionAllPage
114
109
 
110
+ def capture_errors
111
+ add_error(version_errors) unless (!version_errors? || version_errors.empty?)
112
+ end
113
+
114
+ def raise_if_errors
115
+ if has_errors?
116
+ error = ''
117
+ errors.each { |err| error << err + "\n" }
118
+ raise error
119
+ end
120
+ end
121
+ end # class GuidelinesVersionAllPage
115
122
  end # module Pages
116
123
 
@@ -0,0 +1,122 @@
1
+ ##############################################################################
2
+ # File:: guidelines_version_all_page_400.rb
3
+ # Purpose:: Guidelines Version All page for AdminModule (v 4.0.0)
4
+ #
5
+ # Author:: Jeff McAffee 2015-09-24
6
+ #
7
+ ##############################################################################
8
+ require 'page-object'
9
+
10
+ module AdminModule::Pages
11
+ class GuidelinesVersionAllPage400
12
+ include PageObject
13
+
14
+ attr_reader :errors
15
+
16
+ #page_url(:get_dynamic_url)
17
+
18
+ def get_dynamic_url
19
+ AdminModule.configuration.base_url + "/admin/decision/versionAllGuideline.aspx"
20
+ end
21
+
22
+ # This must be a class method so it's available for the control
23
+ # method generation methods.
24
+ #
25
+
26
+ def self.available_gdls_id
27
+ 'tsGuidelines_lstAvailable'
28
+ end
29
+
30
+ select_list(:guidelines_available,
31
+ id: available_gdls_id )
32
+
33
+ select_list(:guidelines_selected,
34
+ id: 'tsGuidelines_lstSelected' )
35
+
36
+ button(:add_guideline_button,
37
+ id: 'tsGuidelines_btnAdd' )
38
+
39
+ text_area(:version_notes,
40
+ id: 'txtVersionAllNotes')
41
+
42
+ button(:save_button,
43
+ id: 'cmdSave')
44
+
45
+ button(:cancel_button,
46
+ id: 'cmdCancel')
47
+
48
+ div(:version_errors,
49
+ id: 'ctlErrors_vsmErrors')
50
+
51
+ def errors
52
+ @errors ||= []
53
+ end
54
+
55
+ def get_guidelines
56
+ gdl_list = []
57
+ Nokogiri::HTML(@browser.html).css("select##{GuidelinesVersionAllPage400.available_gdls_id}>option").each do |elem|
58
+ gdl_list << elem.text
59
+ end
60
+
61
+ gdl_list
62
+ end
63
+
64
+ def version(gdl_names, comments = nil)
65
+ gdl_names = Array(gdl_names)
66
+
67
+ if comments.nil?
68
+ comments = "auto version"
69
+ end
70
+ self.version_notes = comments
71
+
72
+ reset_errors
73
+
74
+ # Add guidelines to be versioned to the selected area.
75
+ gdl_names.each do |gdl|
76
+ guidelines_available_element.select(gdl)
77
+ self.add_guideline_button
78
+ end
79
+
80
+ self.save_button
81
+
82
+ capture_errors
83
+
84
+ # Return the url of the version guideline page.
85
+ current_url
86
+
87
+ rescue Timeout::Error => e
88
+ add_error 'Timeout occurred. Try adjusting the browser_timeout configuration option.'
89
+
90
+ rescue Exception => e
91
+ add_error e.message
92
+
93
+ ensure
94
+ raise_if_errors
95
+ end
96
+
97
+ def reset_errors
98
+ errors = []
99
+ end
100
+
101
+ def has_errors?
102
+ errors.size > 0
103
+ end
104
+
105
+ def add_error err_msg
106
+ errors << err_msg
107
+ end
108
+
109
+ def capture_errors
110
+ add_error(version_errors) unless (!version_errors? || version_errors.empty?)
111
+ end
112
+
113
+ def raise_if_errors
114
+ if has_errors?
115
+ error = ''
116
+ errors.each { |err| error << err + "\n" }
117
+ raise error
118
+ end
119
+ end
120
+ end # class
121
+ end # module
122
+