Skip to content

Commit

Permalink
factor out WebSession
Browse files Browse the repository at this point in the history
  • Loading branch information
Matt Gillooly committed Jan 2, 2014
1 parent 16e55fc commit 4ad290f
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 52 deletions.
30 changes: 4 additions & 26 deletions lib/ics_validator/file_validator.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
require 'capybara/poltergeist'
require 'ics_validator/api_response'
require 'ics_validator/web_session'

module IcsValidator

Expand All @@ -12,30 +11,9 @@ def initialize(path)
end

def valid?
request_validation.valid?
end

private

def request_validation
session = Capybara::Session.new(:poltergeist)

session.driver.headers = { 'User-Agent' =>
"Mozilla/5.0 (Macintosh; Intel Mac OS X)" }

session.visit('http://icalvalid.cloudapp.net/')

session.attach_file('Content_fileUpload', File.expand_path(@path))

session.click_button "Content_btnUpload"

response = nil

Capybara.send(:timeout, 10, session.driver) do
response = ApiResponse.build(session.html)
end

response
session = WebSession.new
session.validate_file(File.expand_path(@path))
session.get_api_response.valid?
end

end
Expand Down
30 changes: 4 additions & 26 deletions lib/ics_validator/snippet_validator.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
require 'capybara/poltergeist'
require 'ics_validator/api_response'
require 'ics_validator/web_session'

module IcsValidator

Expand All @@ -12,30 +11,9 @@ def initialize(snippet)
end

def valid?
request_validation.valid?
end

private

def request_validation
session = Capybara::Session.new(:poltergeist)

session.driver.headers = { 'User-Agent' =>
"Mozilla/5.0 (Macintosh; Intel Mac OS X)" }

session.visit('http://icalvalid.cloudapp.net/')

session.fill_in('Content_tbSnippet', with: @snippet)

session.click_button "Content_btnValidateSnippet"

response = nil

Capybara.send(:timeout, 20, session.driver) do
response = ApiResponse.build(session.html)
end

response
session = WebSession.new
session.validate_snippet(@snippet)
session.get_api_response.valid?
end

end
Expand Down
41 changes: 41 additions & 0 deletions lib/ics_validator/web_session.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
require 'capybara/poltergeist'
require 'ics_validator/api_response'

module IcsValidator

# Capybara session for interacting with icalvalid.cloudapp.net
#
class WebSession

def initialize
@session = Capybara::Session.new(:poltergeist)

@session.driver.headers = {
'User-Agent' => "Mozilla/5.0 (Macintosh; Intel Mac OS X)"
}

@session.visit('http://icalvalid.cloudapp.net/')
end

def validate_snippet(snippet)
@session.fill_in('Content_tbSnippet', with: snippet)
@session.click_button "Content_btnValidateSnippet"
end

def validate_file(path)
@session.attach_file('Content_fileUpload', path)
@session.click_button "Content_btnUpload"
end

def get_api_response
response = nil

Capybara.send(:timeout, 20, @session.driver) do
response = ApiResponse.build(@session.html)
end

response
end

end
end

0 comments on commit 4ad290f

Please sign in to comment.