Class: AdminModule::Pages::GuidelineVersionPage
- Inherits:
-
Object
- Object
- AdminModule::Pages::GuidelineVersionPage
- Includes:
- PageObject
- Defined in:
- lib/admin_module/pages/guideline_version_page.rb
Instance Attribute Summary collapse
-
#errors ⇒ Object
readonly
Returns the value of attribute errors.
Instance Method Summary collapse
- #add_error(err_msg) ⇒ Object
- #capture_errors ⇒ Object
-
#get_dynamic_url ⇒ Object
page_url(:get_dynamic_url).
- #has_errors? ⇒ Boolean
- #latest_version ⇒ Object
- #raise_if_errors ⇒ Object
- #reposition_file_input ⇒ Object
- #reset_errors ⇒ Object
- #upload(source_file, comments = nil) ⇒ Object
- #verify_latest_version(comments) ⇒ Object
Instance Attribute Details
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
16 17 18 |
# File 'lib/admin_module/pages/guideline_version_page.rb', line 16 def errors @errors end |
Instance Method Details
#add_error(err_msg) ⇒ Object
102 103 104 |
# File 'lib/admin_module/pages/guideline_version_page.rb', line 102 def add_error err_msg errors << err_msg end |
#capture_errors ⇒ Object
106 107 108 109 |
# File 'lib/admin_module/pages/guideline_version_page.rb', line 106 def capture_errors add_error(version_errors) unless (!version_errors? || version_errors.empty?) add_error(add_version_page_errors) unless (!add_version_page_errors? || add_version_page_errors.empty?) end |
#get_dynamic_url ⇒ Object
page_url(:get_dynamic_url)
20 21 22 |
# File 'lib/admin_module/pages/guideline_version_page.rb', line 20 def get_dynamic_url AdminModule.configuration.url(GuidelineVersionPage) end |
#has_errors? ⇒ Boolean
98 99 100 |
# File 'lib/admin_module/pages/guideline_version_page.rb', line 98 def has_errors? errors.size > 0 end |
#latest_version ⇒ Object
133 134 135 136 137 138 139 140 |
# File 'lib/admin_module/pages/guideline_version_page.rb', line 133 def latest_version doc = Nokogiri::HTML(@browser.html) # The specific version notes TD element: #version_notes_row_1 = doc.css("#dgrVersions > tbody > tr:nth-child(2) > td:nth-child(13)") # The entire 1st version row (TR) element: version_row = doc.css("#dgrVersions > tbody > tr:nth-child(2)") end |
#raise_if_errors ⇒ Object
111 112 113 114 115 116 117 |
# File 'lib/admin_module/pages/guideline_version_page.rb', line 111 def raise_if_errors if has_errors? error = '' errors.each { |err| error << err + "\n" } raise error end end |
#reposition_file_input ⇒ Object
81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/admin_module/pages/guideline_version_page.rb', line 81 def reposition_file_input repos_script = "document.getElementsByTagName('input');\np = document.getElementsByName('ctl00$cntPlh$inputUpload');\nif (p != null)\n{\n p[0].style.marginLeft='0';\n}\n" @browser.execute_script(repos_script) end |
#reset_errors ⇒ Object
94 95 96 |
# File 'lib/admin_module/pages/guideline_version_page.rb', line 94 def reset_errors errors = [] end |
#upload(source_file, comments = nil) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/admin_module/pages/guideline_version_page.rb', line 46 def upload(source_file, comments = nil) # The file field (visible as a button) has a negative margin. # We can't do anything with it (it's not 'visible') as it is, # so we'll use JS to set the left margin to 0. reposition_file_input # Set the file to upload. #file_input_element.set(source_file) # The watir way... self.file_input = source_file if comments.nil? comments = "auto upload" end self.version_notes = comments reset_errors self.save capture_errors verify_latest_version comments # Return the url of the version guideline page. self rescue Timeout::Error => e add_error 'Timeout occurred. Try adjusting the browser_timeout configuration option.' rescue Exception => e add_error e. ensure raise_if_errors end |
#verify_latest_version(comments) ⇒ Object
119 120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'lib/admin_module/pages/guideline_version_page.rb', line 119 def verify_latest_version comments if !versions_table? add_error("Version upload not completed. Did a timeout occur?") unless has_errors? return end version_row = latest_version # We have to account for HTML encodings when comparing comments. unless version_row.to_s.include?(CGI.escapeHTML(comments)) add_error("Version upload not completed. Comment not found.") end end |