# HG changeset patch # User Alessio Caiazza # Date 1297118858 -3600 # Mon Feb 07 23:47:38 2011 +0100 # Node ID 0a79345d2283666cd865a91488f25b2e41176d16 # Parent 4fde57dbd2e65ef600660dba15942af8a680a858 Test class migrated from Github to Bitbucket diff --git a/test/functional/github_hook_controller_test.rb b/test/functional/bitbucket_hook_controller_test.rb rename from test/functional/github_hook_controller_test.rb rename to test/functional/bitbucket_hook_controller_test.rb --- a/test/functional/github_hook_controller_test.rb +++ b/test/functional/bitbucket_hook_controller_test.rb @@ -2,56 +2,37 @@ require 'mocha' -class GithubHookControllerTest < ActionController::TestCase +class BitbucketHookControllerTest < ActionController::TestCase def setup - # Sample JSON post from http://github.com/guides/post-receive-hooks - @json = '{ - "before": "5aef35982fb2d34e9d9d4502f6ede1072793222d", - "repository": { - "url": "http://github.com/defunkt/github", - "name": "github", - "description": "You\'re lookin\' at it.", - "watchers": 5, - "forks": 2, - "private": 1, - "owner": { - "email": "chris@ozmm.org", - "name": "defunkt" - } - }, - "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" - }' - @repository = Repository::Git.new + # Sample JSON post from http://confluence.atlassian.com/display/BBDEV/Writing+Brokers+for+Bitbucket#the-payload + @json = <<-EOF +{"broker": "twitter", + "commits": [{ "author": "jespern", + "files": [{"file": "media/css/layout.css", + "type": "modified"}, + {"file": "apps/bb/views.py", + "type": "modified"}, + {"file": "templates/issues/issue.html", + "type": "modified"}], + "message": "adding bump button, issue #206 fixed", + "node": "e71c63bcc05e", + "revision": 1650, + "size": 684}], + "repository": { "absolute_url": "/jespern/bitbucket/", + "name": "bitbucket", + "owner": "jespern", + "slug": "bitbucket", + "website": "http://bitbucket.org/"}, + "service": {"password": "bar", "username": "foo"}} +EOF + @repository = Repository::Mercurial.new @repository.stubs(:fetch_changesets).returns(true) @project = Project.new @project.stubs(:repository).returns(@repository) - Project.stubs(:find_by_identifier).with('github').returns(@project) + Project.stubs(:find_by_identifier).with('bitbucket').returns(@project) + @controller = BitbucketHookController.new @controller.stubs(:exec) Repository.expects(:fetch_changesets).never @@ -64,12 +45,12 @@ end def test_should_use_the_repository_name_as_project_identifier - Project.expects(:find_by_identifier).with('github').returns(@project) + Project.expects(:find_by_identifier).with('bitbucket').returns(@project) do_post end - def test_should_update_the_repository_using_git_on_the_commandline - Project.expects(:find_by_identifier).with('github').returns(@project) + def test_should_update_the_repository_using_hg_on_the_commandline + Project.expects(:find_by_identifier).with('bitbucket').returns(@project) @controller.expects(:exec).returns(true) do_post end @@ -98,18 +79,18 @@ assert_raises TypeError do project = mock('project') project.expects(:repository).returns(nil) - Project.expects(:find_by_identifier).with('github').returns(project) - do_post :repository => {:name => 'github'} + Project.expects(:find_by_identifier).with('bitbucket').returns(project) + do_post :repository => {:name => 'bitbucket'} end end - def test_should_return_500_if_repository_is_not_git + def test_should_return_500_if_repository_is_not_mercurial assert_raises TypeError do project = mock('project') repository = Repository::Subversion.new project.expects(:repository).at_least(1).returns(repository) - Project.expects(:find_by_identifier).with('github').returns(project) - do_post :repository => {:name => 'github'} + Project.expects(:find_by_identifier).with('bitbucket').returns(project) + do_post :repository => {:name => 'bitbucket'} end end