diff options
author | Steve Kemp <steve@steve.org.uk> | 2012-11-22 15:38:07 +0000 |
---|---|---|
committer | Steve Kemp <steve@steve.org.uk> | 2012-11-22 15:38:07 +0000 |
commit | 8cd8125b071f4a0be8ec05d40471da6821067b07 (patch) | |
tree | 25662cfd3ca6e73855d16ef8937f0ba2ff97603e /lib/custodian/protocol-tests/http.rb | |
parent | 56bb4da159266f5b10d9787a7b9eacf788001d0c (diff) |
Parse the configuration file into arrays of jobs, via our test-factory
Diffstat (limited to 'lib/custodian/protocol-tests/http.rb')
-rwxr-xr-x | lib/custodian/protocol-tests/http.rb | 144 |
1 files changed, 0 insertions, 144 deletions
diff --git a/lib/custodian/protocol-tests/http.rb b/lib/custodian/protocol-tests/http.rb deleted file mode 100755 index 102ffea..0000000 --- a/lib/custodian/protocol-tests/http.rb +++ /dev/null @@ -1,144 +0,0 @@ -#!/usr/bin/ruby1.8 - - -require 'custodian/webfetch' - - -class HTTPTest - - # - # Data passed from the JSON hash. - # - attr_reader :test_data - - - # - # Save the data away. - # - def initialize( data ) - @test_data = data - @error = nil - - # - # Ensure we have an URL - # - if ( @test_data["target_host"].nil? ) - @error = "Missing URL for the test." - raise ArgumentError, @error - end - - # - # Ensure we have a port - # - if ( @test_data["test_port"].nil? ) - @error = "Missing port for the test." - raise ArgumentError, @error - end - - end - - - # - # Run the test. - # - # Return "true" on success - # - # Return "false" on failure. - # - # If the test fails the details should be retrieved from "error()". - # - def run_test - - # - # Reset state from previous test. - # - @error = nil - - - # - # Run the fetch. - # - obj = WebFetch.new( @test_data["target_host"], @test_data["timeout"].to_i ) - - # - # If we succeeded in the fetch - # - if ( obj.fetch() ) - - # - # Do we need to test for a HTTP status code? - # - if ( @test_data["http_status"] ) - - puts "Testing for HTTP status code: #{@test_data['http_status']}" if ( @test_data['verbose'] ) - - if ( obj.status().to_i != @test_data['http_status'].to_i) - @error = "#{@error} <p>The HTTP status-code was '#{obj.status}' not '#{@test_data['http_status']}'.</p>" - end - end - - # - # Do we need to search for text in the body of the reply? - # - if ( @test_data['http_text'] ) - puts "Testing for text in the response: '#{@test_data['http_text']}'" if ( @test_data['verbose'] ) - - if (! obj.content.match(/#{@test_data['http_text']}/i) ) - @error = "#{@error}<p>The response did not contain our expected text '#{test_data['http_text']}'</p>" - end - end - - return true if ( @error.nil? ) - - return false - end - - @error = obj.error() - return false - end - - - # - # Return the error text for why this test failed. - # - def error - return @error - end - - -end - - - -# -# Sample test, for testing. -# -if __FILE__ == $0 then - - # - # Sample data. - # - test = { - "target_host" => "http://itsdanbull.co.uk/", - "test_type" => "http", - "verbose" => 1, - "timeout" => 3, - "test_port" => 80, - "test_alert" => "Collector is unavailable", - "http_status" => "200", - "http_text" => "Dan Bull" - } - - - # - # Run the test. - # - http = HTTPTest.new( test ) - if ( http.run_test ) - puts "TEST OK" - else - puts "TEST FAILED" - puts http.error() - end - -end |