Sha256: 6f47093e0569db7723bda2afd120ad9ed49fe108beac4ecced0b1c62d7097dba

Contents?: true

Size: 1.42 KB

Versions: 2

Compression:

Stored size: 1.42 KB

Contents

#!/usr/bin/env ruby
# -*- coding: binary -*-

$:.unshift(File.join(File.dirname(__FILE__), '..', '..', '..'))

require 'test/unit'
require 'rex/proto/http'

class Rex::Proto::Http::Server::UnitTest < Test::Unit::TestCase

	ListenPort = 8090
	ListenHost = '127.0.0.1'

	SrvKlass = Rex::Proto::Http::Server
	CliKlass = Rex::Proto::Http::Client

	def test_server
		begin
			s   = start_srv
			c   = CliKlass.new(ListenHost, ListenPort)

			1.upto(10) {
				req = c.request_raw('uri' => '/')
				res = c.send_recv(req)
				assert_not_nil(res)
				assert_equal(404, res.code)
			}
		ensure
			stop_srv
		end
	end

	def test_resource
		begin
			s   = start_srv
			c   = CliKlass.new(ListenHost, ListenPort)

			s.add_resource('/foo',
				'Proc' => Proc.new { |cli, req|
					resp = Rex::Proto::Http::Response::OK.new

					resp.body = "Chickens everywhere"

					cli.send_response(resp)
				})

			1.upto(10) {
				req = c.request_raw('uri' => '/foo')
				res = c.send_recv(req)
				assert_not_nil(res)
				assert_equal(200, res.code)
				assert_equal("Chickens everywhere", res.body)
			}

			s.remove_resource('/foo')

			req = c.request_raw('uri' => '/foo')
			res = c.send_recv(req)
			assert_not_nil(res)
			assert_equal(404, res.code)
		ensure
			stop_srv
		end
	end

protected

	def start_srv
		self.srv = SrvKlass.new(ListenPort, ListenHost)
		self.srv.start
		self.srv
	end

	def stop_srv
		self.srv.stop if (self.srv)
	end

attr_accessor :srv

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
librex-0.0.68 lib/rex/proto/http/server.rb.ut.rb
librex-0.0.66 lib/rex/proto/http/server.rb.ut.rb