OSDN Git Service

Merge branch 'master' into fixes/api
authorSebastian Ziebell <sebastian.ziebell@asquera.de>
Wed, 20 Feb 2013 11:43:32 +0000 (12:43 +0100)
committerSebastian Ziebell <sebastian.ziebell@asquera.de>
Wed, 20 Feb 2013 11:43:32 +0000 (12:43 +0100)
Conflicts:
spec/requests/api/projects_spec.rb

1  2 
app/models/project.rb
config/routes.rb
doc/api/projects.md
lib/api/merge_requests.rb
lib/api/milestones.rb
lib/api/projects.rb
spec/requests/api/merge_requests_spec.rb
spec/requests/api/milestones_spec.rb
spec/requests/api/projects_spec.rb

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -46,26 -41,25 +46,43 @@@ describe Gitlab::API d
        response.status.should == 201
        json_response['title'].should == 'Test merge_request'
      end
 +
 +    it "should return 422 when source_branch equals target_branch" do
 +      post api("/projects/#{project.id}/merge_requests", user),
 +        title: "Test merge_request", source_branch: "master", target_branch: "master", author: user
 +      response.status.should == 422
 +    end
 +
 +    it "should return 400 when source_branch is missing" do
 +      post api("/projects/#{project.id}/merge_requests", user),
 +        title: "Test merge_request", target_branch: "master", author: user
 +      response.status.should == 400
 +    end
 +
 +    it "should return 400 when target_branch is missing" do
 +      post api("/projects/#{project.id}/merge_requests", user),
 +        title: "Test merge_request", source_branch: "stable", author: user
 +      response.status.should == 400
 +    end
    end
  
+   describe "PUT /projects/:id/merge_request/:merge_request_id to close MR" do
+     it "should return merge_request" do
+       put api("/projects/#{project.id}/merge_request/#{merge_request.id}", user), state_event: "close"
+       response.status.should == 200
+       json_response['state'].should == 'closed'
+     end
+   end
+   describe "PUT /projects/:id/merge_request/:merge_request_id to merge MR" do
+     it "should return merge_request" do
+       put api("/projects/#{project.id}/merge_request/#{merge_request.id}", user), state_event: "merge"
+       response.status.should == 200
+       json_response['state'].should == 'merged'
+     end
+   end
    describe "PUT /projects/:id/merge_request/:merge_request_id" do
      it "should return merge_request" do
        put api("/projects/#{project.id}/merge_request/#{merge_request.id}", user), title: "New title"
@@@ -61,11 -43,15 +61,21 @@@ describe Gitlab::API d
        response.status.should == 200
        json_response['title'].should == 'updated title'
      end
 +
 +    it "should return a 404 error if milestone is not found" do
 +      put api("/projects/#{project.id}/milestones/1234", user),
 +        title: 'updated title'
 +      response.status.should == 404
 +    end
    end
+   describe "PUT /projects/:id/milestones/:milestone_id to close milestone" do
+     it "should update a project milestone" do
+       put api("/projects/#{project.id}/milestones/#{milestone.id}", user),
+         state_event: 'close'
+       response.status.should == 200
+       json_response['state'].should == 'closed'
+     end
+   end
  end
@@@ -41,11 -55,12 +55,17 @@@ describe Gitlab::API d
        expect { post api("/projects", user) }.to_not change {Project.count}
      end
  
 +    it "should return a 400 error if name not given" do
 +      post api("/projects", user)
 +      response.status.should == 400
 +    end
 +
+     it "should create last project before reaching project limit" do
+       (1..user2.projects_limit-1).each { |p| post api("/projects", user2), name: "foo#{p}" }
+       post api("/projects", user2), name: "foo"
+       response.status.should == 201
+     end
      it "should respond with 201 on success" do
        post api("/projects", user), name: 'foo'
        response.status.should == 201
    end
  
    describe "GET /projects/:id/hooks/:hook_id" do
-     it "should return a project hook" do
-       get api("/projects/#{project.id}/hooks/#{hook.id}", user)
-       response.status.should == 200
-       json_response['url'].should == hook.url
+     context "authorized user" do
+       it "should return a project hook" do
+         get api("/projects/#{project.id}/hooks/#{hook.id}", user)
+         response.status.should == 200
+         json_response['url'].should == hook.url
+       end
+       it "should return a 404 error if hook id is not available" do
+         get api("/projects/#{project.id}/hooks/1234", user)
+         response.status.should == 404
+       end
+     end
+     context "unauthorized user" do
+       it "should not access an existing hook" do
+         get api("/projects/#{project.id}/hooks/#{hook.id}", user3)
+         response.status.should == 403
+       end
      end
 +
 +    it "should return a 404 error if hook id is not available" do
 +      get api("/projects/#{project.id}/hooks/1234", user)
 +      response.status.should == 404
 +    end
    end
  
    describe "POST /projects/:id/hooks" do