# coding: utf-8 require 'tests/startup' require 'tests/git_setup' require 'net/http' require 'uri' require 'test/unit' class HttpHandlerTest < Test::Unit::TestCase include Startup include GitSetup def setup prepare_startup git_setup @json_request = %< { "before": "5aef35982fb2d34e9d9d4502f6ede1072793222d", "repository": { "url": "file:///tmp/hercules_test_repository", "name": "test_project", "description": "test repository", "watchers": 5, "forks": 2, "private": 1, "owner": { "email": "diogob@gmail.com", "name": "diogob" } }, "commits": [ { "id": "41a212ee83ca127e3c8cf465891ab7216a705f59", "url": "http://github.com/defunkt/github/commit/41a212ee83ca127e3c8cf465891ab7216a705f59", "author": { "email": "chris@ozmm.org", "name": "Chris Wanstrath" }, "message": "okay i give in", "timestamp": "2008-02-15T14:57:17-08:00", "added": ["filepath.rb"] }, { "id": "de8251ff97ee194a289832576287d6f8ad74e3d0", "url": "http://github.com/defunkt/github/commit/de8251ff97ee194a289832576287d6f8ad74e3d0", "author": { "email": "chris@ozmm.org", "name": "Chris Wanstrath" }, "message": "update pricing a tad", "timestamp": "2008-02-15T14:36:34-08:00" } ], "after": "de8251ff97ee194a289832576287d6f8ad74e3d0", "ref": "refs/heads/master" }> end def post token start_hercules do |pid,log| res = Net::HTTP.post_form(URI.parse("http://127.0.0.1:49456/test_project/#{token}"), {'payload' => @json_request}) yield res, log end end def get token start_hercules do |pid,log| res = Net::HTTP.get(URI.parse("http://127.0.0.1:49456/test_project/#{token}")) yield res, log end end def test_simple_post post "abc" do |res, log| sleep 1 log_content = log.read() assert_match /Received POST/, log_content assert_no_match /Repository .* not found/, log_content assert_no_match /Invalid token/, log_content assert_no_match /Repository .* not found/, res.body assert_is_checkout @config['test_project']['target_directory'] + '/branches/master' end end def test_get get "abc" do |res,log| assert_no_match /500: Error/, log.read end end end