Commit 26fb55c670fb58cde355a60d85eeb38e20ba13f4
Exists in
master
and in
4 other branches
Merge pull request #1477 from tsigo/route_specs
Routing specs and cleanup
Showing
27 changed files
with
879 additions
and
149 deletions
Show diff stats
app/controllers/admin/dashboard_controller.rb
| 1 | -class Admin::DashboardController < ApplicationController | |
| 2 | - layout "admin" | |
| 3 | - before_filter :authenticate_user! | |
| 4 | - before_filter :authenticate_admin! | |
| 5 | - | |
| 1 | +class Admin::DashboardController < AdminController | |
| 6 | 2 | def index |
| 7 | 3 | @workers = Resque.workers |
| 8 | 4 | @pending_jobs = Resque.size(:post_receive) | ... | ... |
app/controllers/admin/hooks_controller.rb
| 1 | -class Admin::HooksController < ApplicationController | |
| 2 | - layout "admin" | |
| 3 | - before_filter :authenticate_user! | |
| 4 | - before_filter :authenticate_admin! | |
| 5 | - | |
| 1 | +class Admin::HooksController < AdminController | |
| 6 | 2 | def index |
| 7 | 3 | @hooks = SystemHook.all |
| 8 | 4 | @hook = SystemHook.new |
| ... | ... | @@ -15,7 +11,7 @@ class Admin::HooksController < ApplicationController |
| 15 | 11 | redirect_to admin_hooks_path, notice: 'Hook was successfully created.' |
| 16 | 12 | else |
| 17 | 13 | @hooks = SystemHook.all |
| 18 | - render :index | |
| 14 | + render :index | |
| 19 | 15 | end |
| 20 | 16 | end |
| 21 | 17 | ... | ... |
app/controllers/admin/logs_controller.rb
app/controllers/admin/projects_controller.rb
| 1 | -class Admin::ProjectsController < ApplicationController | |
| 2 | - layout "admin" | |
| 3 | - before_filter :authenticate_user! | |
| 4 | - before_filter :authenticate_admin! | |
| 1 | +class Admin::ProjectsController < AdminController | |
| 5 | 2 | before_filter :admin_project, only: [:edit, :show, :update, :destroy, :team_update] |
| 6 | 3 | |
| 7 | 4 | def index |
| ... | ... | @@ -43,7 +40,7 @@ class Admin::ProjectsController < ApplicationController |
| 43 | 40 | def update |
| 44 | 41 | owner_id = params[:project].delete(:owner_id) |
| 45 | 42 | |
| 46 | - if owner_id | |
| 43 | + if owner_id | |
| 47 | 44 | @admin_project.owner = User.find(owner_id) |
| 48 | 45 | end |
| 49 | 46 | |
| ... | ... | @@ -60,7 +57,7 @@ class Admin::ProjectsController < ApplicationController |
| 60 | 57 | redirect_to admin_projects_url, notice: 'Project was successfully deleted.' |
| 61 | 58 | end |
| 62 | 59 | |
| 63 | - private | |
| 60 | + private | |
| 64 | 61 | |
| 65 | 62 | def admin_project |
| 66 | 63 | @admin_project = Project.find_by_code(params[:id]) | ... | ... |
app/controllers/admin/resque_controller.rb
app/controllers/admin/team_members_controller.rb
| 1 | -class Admin::TeamMembersController < ApplicationController | |
| 2 | - layout "admin" | |
| 3 | - before_filter :authenticate_user! | |
| 4 | - before_filter :authenticate_admin! | |
| 5 | - | |
| 1 | +class Admin::TeamMembersController < AdminController | |
| 6 | 2 | def edit |
| 7 | 3 | @admin_team_member = UsersProject.find(params[:id]) |
| 8 | 4 | end | ... | ... |
app/controllers/admin/users_controller.rb
| 1 | -class Admin::UsersController < ApplicationController | |
| 2 | - layout "admin" | |
| 3 | - before_filter :authenticate_user! | |
| 4 | - before_filter :authenticate_admin! | |
| 5 | - | |
| 1 | +class Admin::UsersController < AdminController | |
| 6 | 2 | def index |
| 7 | 3 | @admin_users = User.scoped |
| 8 | 4 | @admin_users = @admin_users.filter(params[:filter]) |
| ... | ... | @@ -24,7 +20,7 @@ class Admin::UsersController < ApplicationController |
| 24 | 20 | @admin_user = User.find(params[:id]) |
| 25 | 21 | |
| 26 | 22 | UsersProject.user_bulk_import( |
| 27 | - @admin_user, | |
| 23 | + @admin_user, | |
| 28 | 24 | params[:project_ids], |
| 29 | 25 | params[:project_access] |
| 30 | 26 | ) |
| ... | ... | @@ -41,22 +37,22 @@ class Admin::UsersController < ApplicationController |
| 41 | 37 | @admin_user = User.find(params[:id]) |
| 42 | 38 | end |
| 43 | 39 | |
| 44 | - def block | |
| 40 | + def block | |
| 45 | 41 | @admin_user = User.find(params[:id]) |
| 46 | 42 | |
| 47 | 43 | if @admin_user.block |
| 48 | 44 | redirect_to :back, alert: "Successfully blocked" |
| 49 | - else | |
| 45 | + else | |
| 50 | 46 | redirect_to :back, alert: "Error occured. User was not blocked" |
| 51 | 47 | end |
| 52 | 48 | end |
| 53 | 49 | |
| 54 | - def unblock | |
| 50 | + def unblock | |
| 55 | 51 | @admin_user = User.find(params[:id]) |
| 56 | 52 | |
| 57 | 53 | if @admin_user.update_attribute(:blocked, false) |
| 58 | 54 | redirect_to :back, alert: "Successfully unblocked" |
| 59 | - else | |
| 55 | + else | |
| 60 | 56 | redirect_to :back, alert: "Error occured. User was not unblocked" |
| 61 | 57 | end |
| 62 | 58 | end | ... | ... |
| ... | ... | @@ -0,0 +1,11 @@ |
| 1 | +# Provides a base class for Admin controllers to subclass | |
| 2 | +# | |
| 3 | +# Automatically sets the layout and ensures an administrator is logged in | |
| 4 | +class AdminController < ApplicationController | |
| 5 | + layout 'admin' | |
| 6 | + before_filter :authenticate_admin! | |
| 7 | + | |
| 8 | + def authenticate_admin! | |
| 9 | + return render_404 unless current_user.is_admin? | |
| 10 | + end | |
| 11 | +end | ... | ... |
app/controllers/application_controller.rb
| ... | ... | @@ -84,10 +84,6 @@ class ApplicationController < ActionController::Base |
| 84 | 84 | abilities << Ability |
| 85 | 85 | end |
| 86 | 86 | |
| 87 | - def authenticate_admin! | |
| 88 | - return render_404 unless current_user.is_admin? | |
| 89 | - end | |
| 90 | - | |
| 91 | 87 | def authorize_project!(action) |
| 92 | 88 | return access_denied! unless can?(current_user, action, project) |
| 93 | 89 | end | ... | ... |
app/controllers/issues_controller.rb
| ... | ... | @@ -17,7 +17,7 @@ class IssuesController < ApplicationController |
| 17 | 17 | before_filter :authorize_write_issue!, only: [:new, :create] |
| 18 | 18 | |
| 19 | 19 | # Allow modify issue |
| 20 | - before_filter :authorize_modify_issue!, only: [:close, :edit, :update] | |
| 20 | + before_filter :authorize_modify_issue!, only: [:edit, :update] | |
| 21 | 21 | |
| 22 | 22 | # Allow destroy issue |
| 23 | 23 | before_filter :authorize_admin_issue!, only: [:destroy] |
| ... | ... | @@ -87,8 +87,6 @@ class IssuesController < ApplicationController |
| 87 | 87 | end |
| 88 | 88 | |
| 89 | 89 | def destroy |
| 90 | - return access_denied! unless can?(current_user, :admin_issue, @issue) | |
| 91 | - | |
| 92 | 90 | @issue.destroy |
| 93 | 91 | |
| 94 | 92 | respond_to do |format| | ... | ... |
app/controllers/profile_controller.rb
app/controllers/team_members_controller.rb
| ... | ... | @@ -5,7 +5,10 @@ class TeamMembersController < ApplicationController |
| 5 | 5 | # Authorize |
| 6 | 6 | before_filter :add_project_abilities |
| 7 | 7 | before_filter :authorize_read_project! |
| 8 | - before_filter :authorize_admin_project!, except: [:show] | |
| 8 | + before_filter :authorize_admin_project!, except: [:index, :show] | |
| 9 | + | |
| 10 | + def index | |
| 11 | + end | |
| 9 | 12 | |
| 10 | 13 | def show |
| 11 | 14 | @team_member = project.users_projects.find(params[:id]) |
| ... | ... | @@ -22,7 +25,7 @@ class TeamMembersController < ApplicationController |
| 22 | 25 | params[:project_access] |
| 23 | 26 | ) |
| 24 | 27 | |
| 25 | - redirect_to team_project_path(@project) | |
| 28 | + redirect_to project_team_index_path(@project) | |
| 26 | 29 | end |
| 27 | 30 | |
| 28 | 31 | def update |
| ... | ... | @@ -32,7 +35,7 @@ class TeamMembersController < ApplicationController |
| 32 | 35 | unless @team_member.valid? |
| 33 | 36 | flash[:alert] = "User should have at least one role" |
| 34 | 37 | end |
| 35 | - redirect_to team_project_path(@project) | |
| 38 | + redirect_to project_team_index_path(@project) | |
| 36 | 39 | end |
| 37 | 40 | |
| 38 | 41 | def destroy |
| ... | ... | @@ -40,7 +43,7 @@ class TeamMembersController < ApplicationController |
| 40 | 43 | @team_member.destroy |
| 41 | 44 | |
| 42 | 45 | respond_to do |format| |
| 43 | - format.html { redirect_to team_project_path(@project) } | |
| 46 | + format.html { redirect_to project_team_index_path(@project) } | |
| 44 | 47 | format.js { render nothing: true } |
| 45 | 48 | end |
| 46 | 49 | end | ... | ... |
app/helpers/application_helper.rb
| ... | ... | @@ -62,7 +62,7 @@ module ApplicationHelper |
| 62 | 62 | { label: "#{@project.name} / Wall", url: wall_project_path(@project) }, |
| 63 | 63 | { label: "#{@project.name} / Tree", url: tree_project_ref_path(@project, @project.root_ref) }, |
| 64 | 64 | { label: "#{@project.name} / Commits", url: project_commits_path(@project) }, |
| 65 | - { label: "#{@project.name} / Team", url: team_project_path(@project) } | |
| 65 | + { label: "#{@project.name} / Team", url: project_team_index_path(@project) } | |
| 66 | 66 | ] |
| 67 | 67 | end |
| 68 | 68 | ... | ... |
app/helpers/tab_helper.rb
| ... | ... | @@ -8,7 +8,7 @@ module TabHelper |
| 8 | 8 | end |
| 9 | 9 | |
| 10 | 10 | def project_tab_class |
| 11 | - [:show, :files, :team, :edit, :update].each do |action| | |
| 11 | + [:show, :files, :edit, :update].each do |action| | |
| 12 | 12 | return "current" if current_page?(controller: "projects", action: action, id: @project) |
| 13 | 13 | end |
| 14 | 14 | ... | ... |
app/views/projects/_project_head.html.haml
| ... | ... | @@ -3,8 +3,8 @@ |
| 3 | 3 | = link_to project_path(@project), class: "activities-tab tab" do |
| 4 | 4 | %i.icon-home |
| 5 | 5 | Show |
| 6 | - %li{ class: " #{'active' if (controller.controller_name == "team_members") || current_page?(team_project_path(@project)) }" } | |
| 7 | - = link_to team_project_path(@project), class: "team-tab tab" do | |
| 6 | + %li{ class: " #{'active' if (controller.controller_name == "team_members") || current_page?(project_team_index_path(@project)) }" } | |
| 7 | + = link_to project_team_index_path(@project), class: "team-tab tab" do | |
| 8 | 8 | %i.icon-user |
| 9 | 9 | Team |
| 10 | 10 | %li{ class: "#{'active' if current_page?(files_project_path(@project)) }" } | ... | ... |
app/views/projects/_team.html.haml
| ... | ... | @@ -1,18 +0,0 @@ |
| 1 | -- grouper_project_members(@project).each do |access, members| | |
| 2 | - %table | |
| 3 | - %thead | |
| 4 | - %tr | |
| 5 | - %th.span7 | |
| 6 | - = Project.access_options.key(access).pluralize | |
| 7 | - %th | |
| 8 | - %tbody | |
| 9 | - - members.each do |up| | |
| 10 | - = render(partial: 'team_members/show', locals: {member: up}) | |
| 11 | - | |
| 12 | - | |
| 13 | -:javascript | |
| 14 | - $(function(){ | |
| 15 | - $('.repo-access-select, .project-access-select').live("change", function() { | |
| 16 | - $(this.form).submit(); | |
| 17 | - }); | |
| 18 | - }) |
app/views/projects/team.html.haml
| ... | ... | @@ -1,15 +0,0 @@ |
| 1 | -= render "project_head" | |
| 2 | -%h3.page_title | |
| 3 | - Team Members | |
| 4 | - %small (#{@project.users_projects.count}) | |
| 5 | - | |
| 6 | -- if can? current_user, :admin_team_member, @project | |
| 7 | - %p.slead | |
| 8 | - = link_to new_project_team_member_path(@project), class: "btn small right", title: "New Team Member" do | |
| 9 | - New Team Member | |
| 10 | - Read more about project permissions | |
| 11 | - %strong= link_to "here", help_permissions_path, class: "vlink" | |
| 12 | - | |
| 13 | - | |
| 14 | -= render partial: "team", locals: {project: @project} | |
| 15 | - |
app/views/team_members/_form.html.haml
| ... | ... | @@ -0,0 +1,18 @@ |
| 1 | +- grouper_project_members(@project).each do |access, members| | |
| 2 | + %table | |
| 3 | + %thead | |
| 4 | + %tr | |
| 5 | + %th.span7 | |
| 6 | + = Project.access_options.key(access).pluralize | |
| 7 | + %th | |
| 8 | + %tbody | |
| 9 | + - members.each do |up| | |
| 10 | + = render(partial: 'team_members/show', locals: {member: up}) | |
| 11 | + | |
| 12 | + | |
| 13 | +:javascript | |
| 14 | + $(function(){ | |
| 15 | + $('.repo-access-select, .project-access-select').live("change", function() { | |
| 16 | + $(this.form).submit(); | |
| 17 | + }); | |
| 18 | + }) | ... | ... |
| ... | ... | @@ -0,0 +1,13 @@ |
| 1 | += render "projects/project_head" | |
| 2 | +%h3.page_title | |
| 3 | + Team Members | |
| 4 | + %small (#{@project.users_projects.count}) | |
| 5 | + | |
| 6 | +- if can? current_user, :admin_team_member, @project | |
| 7 | + %p.slead | |
| 8 | + = link_to new_project_team_member_path(@project), class: "btn small right", title: "New Team Member" do | |
| 9 | + New Team Member | |
| 10 | + Read more about project permissions | |
| 11 | + %strong= link_to "here", help_permissions_path, class: "vlink" | |
| 12 | + | |
| 13 | += render partial: "team_members/team", locals: {project: @project} | ... | ... |
app/views/team_members/show.html.haml
config/routes.rb
| ... | ... | @@ -10,7 +10,7 @@ Gitlab::Application.routes.draw do |
| 10 | 10 | |
| 11 | 11 | # Optionally, enable Resque here |
| 12 | 12 | require 'resque/server' |
| 13 | - mount Resque::Server.new, at: '/info/resque', as: 'resque' | |
| 13 | + mount Resque::Server => '/info/resque', as: 'resque' | |
| 14 | 14 | |
| 15 | 15 | # Enable Grack support |
| 16 | 16 | mount Grack::Bundle.new({ |
| ... | ... | @@ -23,14 +23,14 @@ Gitlab::Application.routes.draw do |
| 23 | 23 | # |
| 24 | 24 | # Help |
| 25 | 25 | # |
| 26 | - get 'help' => 'help#index' | |
| 27 | - get 'help/permissions' => 'help#permissions' | |
| 28 | - get 'help/workflow' => 'help#workflow' | |
| 29 | - get 'help/api' => 'help#api' | |
| 30 | - get 'help/web_hooks' => 'help#web_hooks' | |
| 26 | + get 'help' => 'help#index' | |
| 27 | + get 'help/permissions' => 'help#permissions' | |
| 28 | + get 'help/workflow' => 'help#workflow' | |
| 29 | + get 'help/api' => 'help#api' | |
| 30 | + get 'help/web_hooks' => 'help#web_hooks' | |
| 31 | 31 | get 'help/system_hooks' => 'help#system_hooks' |
| 32 | - get 'help/markdown' => 'help#markdown' | |
| 33 | - get 'help/ssh' => 'help#ssh' | |
| 32 | + get 'help/markdown' => 'help#markdown' | |
| 33 | + get 'help/ssh' => 'help#ssh' | |
| 34 | 34 | |
| 35 | 35 | # |
| 36 | 36 | # Admin Area |
| ... | ... | @@ -43,19 +43,19 @@ Gitlab::Application.routes.draw do |
| 43 | 43 | put :unblock |
| 44 | 44 | end |
| 45 | 45 | end |
| 46 | - resources :projects, :constraints => { :id => /[^\/]+/ } do | |
| 46 | + resources :projects, constraints: { id: /[^\/]+/ } do | |
| 47 | 47 | member do |
| 48 | 48 | get :team |
| 49 | 49 | put :team_update |
| 50 | 50 | end |
| 51 | 51 | end |
| 52 | - resources :team_members, :only => [:edit, :update, :destroy] | |
| 53 | - resources :hooks, :only => [:index, :create, :destroy] do | |
| 52 | + resources :team_members, only: [:edit, :update, :destroy] | |
| 53 | + resources :hooks, only: [:index, :create, :destroy] do | |
| 54 | 54 | get :test |
| 55 | 55 | end |
| 56 | - resource :logs | |
| 57 | - resource :resque, :controller => 'resque' | |
| 58 | - root :to => "dashboard#index" | |
| 56 | + resource :logs, only: [:show] | |
| 57 | + resource :resque, controller: 'resque', only: [:show] | |
| 58 | + root to: "dashboard#index" | |
| 59 | 59 | end |
| 60 | 60 | |
| 61 | 61 | get "errors/githost" |
| ... | ... | @@ -63,39 +63,39 @@ Gitlab::Application.routes.draw do |
| 63 | 63 | # |
| 64 | 64 | # Profile Area |
| 65 | 65 | # |
| 66 | - get "profile/account", :to => "profile#account" | |
| 67 | - get "profile/history", :to => "profile#history" | |
| 68 | - put "profile/password", :to => "profile#password_update" | |
| 69 | - get "profile/token", :to => "profile#token" | |
| 70 | - put "profile/reset_private_token", :to => "profile#reset_private_token" | |
| 71 | - get "profile", :to => "profile#show" | |
| 72 | - get "profile/design", :to => "profile#design" | |
| 73 | - put "profile/update", :to => "profile#update" | |
| 66 | + get "profile/account" => "profile#account" | |
| 67 | + get "profile/history" => "profile#history" | |
| 68 | + put "profile/password" => "profile#password_update" | |
| 69 | + get "profile/token" => "profile#token" | |
| 70 | + put "profile/reset_private_token" => "profile#reset_private_token" | |
| 71 | + get "profile" => "profile#show" | |
| 72 | + get "profile/design" => "profile#design" | |
| 73 | + put "profile/update" => "profile#update" | |
| 74 | + | |
| 74 | 75 | resources :keys |
| 75 | 76 | |
| 76 | 77 | # |
| 77 | 78 | # Dashboard Area |
| 78 | 79 | # |
| 79 | - get "dashboard", :to => "dashboard#index" | |
| 80 | - get "dashboard/issues", :to => "dashboard#issues" | |
| 81 | - get "dashboard/merge_requests", :to => "dashboard#merge_requests" | |
| 80 | + get "dashboard" => "dashboard#index" | |
| 81 | + get "dashboard/issues" => "dashboard#issues" | |
| 82 | + get "dashboard/merge_requests" => "dashboard#merge_requests" | |
| 82 | 83 | |
| 83 | - resources :projects, :constraints => { :id => /[^\/]+/ }, :only => [:new, :create] | |
| 84 | + resources :projects, constraints: { id: /[^\/]+/ }, only: [:new, :create] | |
| 84 | 85 | |
| 85 | - devise_for :users, :controllers => { :omniauth_callbacks => :omniauth_callbacks } | |
| 86 | + devise_for :users, controllers: { omniauth_callbacks: :omniauth_callbacks } | |
| 86 | 87 | |
| 87 | 88 | # |
| 88 | 89 | # Project Area |
| 89 | 90 | # |
| 90 | - resources :projects, :constraints => { :id => /[^\/]+/ }, :except => [:new, :create, :index], :path => "/" do | |
| 91 | + resources :projects, constraints: { id: /[^\/]+/ }, except: [:new, :create, :index], path: "/" do | |
| 91 | 92 | member do |
| 92 | - get "team" | |
| 93 | 93 | get "wall" |
| 94 | 94 | get "graph" |
| 95 | 95 | get "files" |
| 96 | 96 | end |
| 97 | 97 | |
| 98 | - resources :wikis, :only => [:show, :edit, :destroy, :create] do | |
| 98 | + resources :wikis, only: [:show, :edit, :destroy, :create] do | |
| 99 | 99 | collection do |
| 100 | 100 | get :pages |
| 101 | 101 | end |
| ... | ... | @@ -114,46 +114,45 @@ Gitlab::Application.routes.draw do |
| 114 | 114 | end |
| 115 | 115 | |
| 116 | 116 | resources :deploy_keys |
| 117 | - resources :protected_branches, :only => [:index, :create, :destroy] | |
| 117 | + resources :protected_branches, only: [:index, :create, :destroy] | |
| 118 | 118 | |
| 119 | - resources :refs, :only => [], :path => "/" do | |
| 119 | + resources :refs, only: [], path: "/" do | |
| 120 | 120 | collection do |
| 121 | 121 | get "switch" |
| 122 | 122 | end |
| 123 | 123 | |
| 124 | 124 | member do |
| 125 | - get "tree", :constraints => { :id => /[a-zA-Z.\/0-9_\-]+/ } | |
| 126 | - get "logs_tree", :constraints => { :id => /[a-zA-Z.\/0-9_\-]+/ } | |
| 125 | + get "tree", constraints: { id: /[a-zA-Z.\/0-9_\-]+/ } | |
| 126 | + get "logs_tree", constraints: { id: /[a-zA-Z.\/0-9_\-]+/ } | |
| 127 | 127 | |
| 128 | 128 | get "blob", |
| 129 | - :constraints => { | |
| 130 | - :id => /[a-zA-Z.0-9\/_\-]+/, | |
| 131 | - :path => /.*/ | |
| 129 | + constraints: { | |
| 130 | + id: /[a-zA-Z.0-9\/_\-]+/, | |
| 131 | + path: /.*/ | |
| 132 | 132 | } |
| 133 | 133 | |
| 134 | - | |
| 135 | 134 | # tree viewer |
| 136 | 135 | get "tree/:path" => "refs#tree", |
| 137 | - :as => :tree_file, | |
| 138 | - :constraints => { | |
| 139 | - :id => /[a-zA-Z.0-9\/_\-]+/, | |
| 140 | - :path => /.*/ | |
| 136 | + as: :tree_file, | |
| 137 | + constraints: { | |
| 138 | + id: /[a-zA-Z.0-9\/_\-]+/, | |
| 139 | + path: /.*/ | |
| 141 | 140 | } |
| 142 | 141 | |
| 143 | 142 | # tree viewer |
| 144 | 143 | get "logs_tree/:path" => "refs#logs_tree", |
| 145 | - :as => :logs_file, | |
| 146 | - :constraints => { | |
| 147 | - :id => /[a-zA-Z.0-9\/_\-]+/, | |
| 148 | - :path => /.*/ | |
| 144 | + as: :logs_file, | |
| 145 | + constraints: { | |
| 146 | + id: /[a-zA-Z.0-9\/_\-]+/, | |
| 147 | + path: /.*/ | |
| 149 | 148 | } |
| 150 | 149 | |
| 151 | 150 | # blame |
| 152 | 151 | get "blame/:path" => "refs#blame", |
| 153 | - :as => :blame_file, | |
| 154 | - :constraints => { | |
| 155 | - :id => /[a-zA-Z.0-9\/_\-]+/, | |
| 156 | - :path => /.*/ | |
| 152 | + as: :blame_file, | |
| 153 | + constraints: { | |
| 154 | + id: /[a-zA-Z.0-9\/_\-]+/, | |
| 155 | + path: /.*/ | |
| 157 | 156 | } |
| 158 | 157 | end |
| 159 | 158 | end |
| ... | ... | @@ -178,7 +177,7 @@ Gitlab::Application.routes.draw do |
| 178 | 177 | end |
| 179 | 178 | end |
| 180 | 179 | |
| 181 | - resources :hooks, :only => [:index, :create, :destroy] do | |
| 180 | + resources :hooks, only: [:index, :create, :destroy] do | |
| 182 | 181 | member do |
| 183 | 182 | get :test |
| 184 | 183 | end |
| ... | ... | @@ -192,9 +191,10 @@ Gitlab::Application.routes.draw do |
| 192 | 191 | get :patch |
| 193 | 192 | end |
| 194 | 193 | end |
| 194 | + resources :team, controller: 'team_members', only: [:index] | |
| 195 | 195 | resources :team_members |
| 196 | 196 | resources :milestones |
| 197 | - resources :labels, :only => [:index] | |
| 197 | + resources :labels, only: [:index] | |
| 198 | 198 | resources :issues do |
| 199 | 199 | |
| 200 | 200 | collection do |
| ... | ... | @@ -203,11 +203,12 @@ Gitlab::Application.routes.draw do |
| 203 | 203 | get :search |
| 204 | 204 | end |
| 205 | 205 | end |
| 206 | - resources :notes, :only => [:index, :create, :destroy] do | |
| 206 | + resources :notes, only: [:index, :create, :destroy] do | |
| 207 | 207 | collection do |
| 208 | 208 | post :preview |
| 209 | 209 | end |
| 210 | 210 | end |
| 211 | 211 | end |
| 212 | - root :to => "dashboard#index" | |
| 212 | + | |
| 213 | + root to: "dashboard#index" | |
| 213 | 214 | end | ... | ... |
features/steps/shared/paths.rb
| ... | ... | @@ -98,7 +98,7 @@ module SharedPaths |
| 98 | 98 | end |
| 99 | 99 | |
| 100 | 100 | Then 'I visit project "Shop" team page' do |
| 101 | - visit team_project_path(Project.find_by_name("Shop")) | |
| 101 | + visit project_team_index_path(Project.find_by_name("Shop")) | |
| 102 | 102 | end |
| 103 | 103 | |
| 104 | 104 | Then 'I visit project "Shop" wall page' do | ... | ... |
spec/requests/security/project_access_spec.rb
| ... | ... | @@ -70,7 +70,7 @@ describe "Application access" do |
| 70 | 70 | end |
| 71 | 71 | |
| 72 | 72 | describe "GET /project_code/team" do |
| 73 | - subject { team_project_path(@project) } | |
| 73 | + subject { project_team_index_path(@project) } | |
| 74 | 74 | |
| 75 | 75 | it { should be_allowed_for @u1 } |
| 76 | 76 | it { should be_allowed_for @u3 } | ... | ... |
| ... | ... | @@ -0,0 +1,166 @@ |
| 1 | +require 'spec_helper' | |
| 2 | + | |
| 3 | +# team_update_admin_user PUT /admin/users/:id/team_update(.:format) admin/users#team_update | |
| 4 | +# block_admin_user PUT /admin/users/:id/block(.:format) admin/users#block | |
| 5 | +# unblock_admin_user PUT /admin/users/:id/unblock(.:format) admin/users#unblock | |
| 6 | +# admin_users GET /admin/users(.:format) admin/users#index | |
| 7 | +# POST /admin/users(.:format) admin/users#create | |
| 8 | +# new_admin_user GET /admin/users/new(.:format) admin/users#new | |
| 9 | +# edit_admin_user GET /admin/users/:id/edit(.:format) admin/users#edit | |
| 10 | +# admin_user GET /admin/users/:id(.:format) admin/users#show | |
| 11 | +# PUT /admin/users/:id(.:format) admin/users#update | |
| 12 | +# DELETE /admin/users/:id(.:format) admin/users#destroy | |
| 13 | +describe Admin::UsersController, "routing" do | |
| 14 | + it "to #team_update" do | |
| 15 | + put("/admin/users/1/team_update").should route_to('admin/users#team_update', id: '1') | |
| 16 | + end | |
| 17 | + | |
| 18 | + it "to #block" do | |
| 19 | + put("/admin/users/1/block").should route_to('admin/users#block', id: '1') | |
| 20 | + end | |
| 21 | + | |
| 22 | + it "to #unblock" do | |
| 23 | + put("/admin/users/1/unblock").should route_to('admin/users#unblock', id: '1') | |
| 24 | + end | |
| 25 | + | |
| 26 | + it "to #index" do | |
| 27 | + get("/admin/users").should route_to('admin/users#index') | |
| 28 | + end | |
| 29 | + | |
| 30 | + it "to #show" do | |
| 31 | + get("/admin/users/1").should route_to('admin/users#show', id: '1') | |
| 32 | + end | |
| 33 | + | |
| 34 | + it "to #create" do | |
| 35 | + post("/admin/users").should route_to('admin/users#create') | |
| 36 | + end | |
| 37 | + | |
| 38 | + it "to #new" do | |
| 39 | + get("/admin/users/new").should route_to('admin/users#new') | |
| 40 | + end | |
| 41 | + | |
| 42 | + it "to #edit" do | |
| 43 | + get("/admin/users/1/edit").should route_to('admin/users#edit', id: '1') | |
| 44 | + end | |
| 45 | + | |
| 46 | + it "to #show" do | |
| 47 | + get("/admin/users/1").should route_to('admin/users#show', id: '1') | |
| 48 | + end | |
| 49 | + | |
| 50 | + it "to #update" do | |
| 51 | + put("/admin/users/1").should route_to('admin/users#update', id: '1') | |
| 52 | + end | |
| 53 | + | |
| 54 | + it "to #destroy" do | |
| 55 | + delete("/admin/users/1").should route_to('admin/users#destroy', id: '1') | |
| 56 | + end | |
| 57 | +end | |
| 58 | + | |
| 59 | +# team_admin_project GET /admin/projects/:id/team(.:format) admin/projects#team {:id=>/[^\/]+/} | |
| 60 | +# team_update_admin_project PUT /admin/projects/:id/team_update(.:format) admin/projects#team_update {:id=>/[^\/]+/} | |
| 61 | +# admin_projects GET /admin/projects(.:format) admin/projects#index {:id=>/[^\/]+/} | |
| 62 | +# POST /admin/projects(.:format) admin/projects#create {:id=>/[^\/]+/} | |
| 63 | +# new_admin_project GET /admin/projects/new(.:format) admin/projects#new {:id=>/[^\/]+/} | |
| 64 | +# edit_admin_project GET /admin/projects/:id/edit(.:format) admin/projects#edit {:id=>/[^\/]+/} | |
| 65 | +# admin_project GET /admin/projects/:id(.:format) admin/projects#show {:id=>/[^\/]+/} | |
| 66 | +# PUT /admin/projects/:id(.:format) admin/projects#update {:id=>/[^\/]+/} | |
| 67 | +# DELETE /admin/projects/:id(.:format) admin/projects#destroy {:id=>/[^\/]+/} | |
| 68 | +describe Admin::ProjectsController, "routing" do | |
| 69 | + it "to #team" do | |
| 70 | + get("/admin/projects/gitlab/team").should route_to('admin/projects#team', id: 'gitlab') | |
| 71 | + end | |
| 72 | + | |
| 73 | + it "to #team_update" do | |
| 74 | + put("/admin/projects/gitlab/team_update").should route_to('admin/projects#team_update', id: 'gitlab') | |
| 75 | + end | |
| 76 | + | |
| 77 | + it "to #index" do | |
| 78 | + get("/admin/projects").should route_to('admin/projects#index') | |
| 79 | + end | |
| 80 | + | |
| 81 | + it "to #create" do | |
| 82 | + post("/admin/projects").should route_to('admin/projects#create') | |
| 83 | + end | |
| 84 | + | |
| 85 | + it "to #new" do | |
| 86 | + get("/admin/projects/new").should route_to('admin/projects#new') | |
| 87 | + end | |
| 88 | + | |
| 89 | + it "to #edit" do | |
| 90 | + get("/admin/projects/gitlab/edit").should route_to('admin/projects#edit', id: 'gitlab') | |
| 91 | + end | |
| 92 | + | |
| 93 | + it "to #show" do | |
| 94 | + get("/admin/projects/gitlab").should route_to('admin/projects#show', id: 'gitlab') | |
| 95 | + end | |
| 96 | + | |
| 97 | + it "to #update" do | |
| 98 | + put("/admin/projects/gitlab").should route_to('admin/projects#update', id: 'gitlab') | |
| 99 | + end | |
| 100 | + | |
| 101 | + it "to #destroy" do | |
| 102 | + delete("/admin/projects/gitlab").should route_to('admin/projects#destroy', id: 'gitlab') | |
| 103 | + end | |
| 104 | +end | |
| 105 | + | |
| 106 | +# edit_admin_team_member GET /admin/team_members/:id/edit(.:format) admin/team_members#edit | |
| 107 | +# admin_team_member PUT /admin/team_members/:id(.:format) admin/team_members#update | |
| 108 | +# DELETE /admin/team_members/:id(.:format) admin/team_members#destroy | |
| 109 | +describe Admin::TeamMembersController, "routing" do | |
| 110 | + it "to #edit" do | |
| 111 | + get("/admin/team_members/1/edit").should route_to('admin/team_members#edit', id: '1') | |
| 112 | + end | |
| 113 | + | |
| 114 | + it "to #update" do | |
| 115 | + put("/admin/team_members/1").should route_to('admin/team_members#update', id: '1') | |
| 116 | + end | |
| 117 | + | |
| 118 | + it "to #destroy" do | |
| 119 | + delete("/admin/team_members/1").should route_to('admin/team_members#destroy', id: '1') | |
| 120 | + end | |
| 121 | +end | |
| 122 | + | |
| 123 | +# admin_hook_test GET /admin/hooks/:hook_id/test(.:format) admin/hooks#test | |
| 124 | +# admin_hooks GET /admin/hooks(.:format) admin/hooks#index | |
| 125 | +# POST /admin/hooks(.:format) admin/hooks#create | |
| 126 | +# admin_hook DELETE /admin/hooks/:id(.:format) admin/hooks#destroy | |
| 127 | +describe Admin::HooksController, "routing" do | |
| 128 | + it "to #test" do | |
| 129 | + get("/admin/hooks/1/test").should route_to('admin/hooks#test', hook_id: '1') | |
| 130 | + end | |
| 131 | + | |
| 132 | + it "to #index" do | |
| 133 | + get("/admin/hooks").should route_to('admin/hooks#index') | |
| 134 | + end | |
| 135 | + | |
| 136 | + it "to #create" do | |
| 137 | + post("/admin/hooks").should route_to('admin/hooks#create') | |
| 138 | + end | |
| 139 | + | |
| 140 | + it "to #destroy" do | |
| 141 | + delete("/admin/hooks/1").should route_to('admin/hooks#destroy', id: '1') | |
| 142 | + end | |
| 143 | + | |
| 144 | +end | |
| 145 | + | |
| 146 | +# admin_logs GET /admin/logs(.:format) admin/logs#show | |
| 147 | +describe Admin::LogsController, "routing" do | |
| 148 | + it "to #show" do | |
| 149 | + get("/admin/logs").should route_to('admin/logs#show') | |
| 150 | + end | |
| 151 | +end | |
| 152 | + | |
| 153 | +# admin_resque GET /admin/resque(.:format) admin/resque#show | |
| 154 | +describe Admin::ResqueController, "routing" do | |
| 155 | + it "to #show" do | |
| 156 | + get("/admin/resque").should route_to('admin/resque#show') | |
| 157 | + end | |
| 158 | +end | |
| 159 | + | |
| 160 | +# admin_root /admin(.:format) admin/dashboard#index | |
| 161 | +describe Admin::DashboardController, "routing" do | |
| 162 | + it "to #index" do | |
| 163 | + get("/admin").should route_to('admin/dashboard#index') | |
| 164 | + end | |
| 165 | +end | |
| 166 | + | ... | ... |
| ... | ... | @@ -0,0 +1,398 @@ |
| 1 | +require 'spec_helper' | |
| 2 | + | |
| 3 | +# Shared examples for a resource inside a Project | |
| 4 | +# | |
| 5 | +# By default it tests all the default REST actions: index, create, new, edit, | |
| 6 | +# show, update, and destroy. You can remove actions by customizing the | |
| 7 | +# `actions` variable. | |
| 8 | +# | |
| 9 | +# It also expects a `controller` variable to be available which defines both | |
| 10 | +# the path to the resource as well as the controller name. | |
| 11 | +# | |
| 12 | +# Examples | |
| 13 | +# | |
| 14 | +# # Default behavior | |
| 15 | +# it_behaves_like "RESTful project resources" do | |
| 16 | +# let(:controller) { 'issues' } | |
| 17 | +# end | |
| 18 | +# | |
| 19 | +# # Customizing actions | |
| 20 | +# it_behaves_like "RESTful project resources" do | |
| 21 | +# let(:actions) { [:index] } | |
| 22 | +# let(:controller) { 'issues' } | |
| 23 | +# end | |
| 24 | +shared_examples "RESTful project resources" do | |
| 25 | + let(:actions) { [:index, :create, :new, :edit, :show, :update, :destroy] } | |
| 26 | + | |
| 27 | + it "to #index" do | |
| 28 | + get("/gitlabhq/#{controller}").should route_to("#{controller}#index", project_id: 'gitlabhq') if actions.include?(:index) | |
| 29 | + end | |
| 30 | + | |
| 31 | + it "to #create" do | |
| 32 | + post("/gitlabhq/#{controller}").should route_to("#{controller}#create", project_id: 'gitlabhq') if actions.include?(:create) | |
| 33 | + end | |
| 34 | + | |
| 35 | + it "to #new" do | |
| 36 | + get("/gitlabhq/#{controller}/new").should route_to("#{controller}#new", project_id: 'gitlabhq') if actions.include?(:new) | |
| 37 | + end | |
| 38 | + | |
| 39 | + it "to #edit" do | |
| 40 | + get("/gitlabhq/#{controller}/1/edit").should route_to("#{controller}#edit", project_id: 'gitlabhq', id: '1') if actions.include?(:edit) | |
| 41 | + end | |
| 42 | + | |
| 43 | + it "to #show" do | |
| 44 | + get("/gitlabhq/#{controller}/1").should route_to("#{controller}#show", project_id: 'gitlabhq', id: '1') if actions.include?(:show) | |
| 45 | + end | |
| 46 | + | |
| 47 | + it "to #update" do | |
| 48 | + put("/gitlabhq/#{controller}/1").should route_to("#{controller}#update", project_id: 'gitlabhq', id: '1') if actions.include?(:update) | |
| 49 | + end | |
| 50 | + | |
| 51 | + it "to #destroy" do | |
| 52 | + delete("/gitlabhq/#{controller}/1").should route_to("#{controller}#destroy", project_id: 'gitlabhq', id: '1') if actions.include?(:destroy) | |
| 53 | + end | |
| 54 | +end | |
| 55 | + | |
| 56 | +# projects POST /projects(.:format) projects#create | |
| 57 | +# new_project GET /projects/new(.:format) projects#new | |
| 58 | +# wall_project GET /:id/wall(.:format) projects#wall | |
| 59 | +# graph_project GET /:id/graph(.:format) projects#graph | |
| 60 | +# files_project GET /:id/files(.:format) projects#files | |
| 61 | +# edit_project GET /:id/edit(.:format) projects#edit | |
| 62 | +# project GET /:id(.:format) projects#show | |
| 63 | +# PUT /:id(.:format) projects#update | |
| 64 | +# DELETE /:id(.:format) projects#destroy | |
| 65 | +describe ProjectsController, "routing" do | |
| 66 | + it "to #create" do | |
| 67 | + post("/projects").should route_to('projects#create') | |
| 68 | + end | |
| 69 | + | |
| 70 | + it "to #new" do | |
| 71 | + get("/projects/new").should route_to('projects#new') | |
| 72 | + end | |
| 73 | + | |
| 74 | + it "to #wall" do | |
| 75 | + get("/gitlabhq/wall").should route_to('projects#wall', id: 'gitlabhq') | |
| 76 | + end | |
| 77 | + | |
| 78 | + it "to #graph" do | |
| 79 | + get("/gitlabhq/graph").should route_to('projects#graph', id: 'gitlabhq') | |
| 80 | + end | |
| 81 | + | |
| 82 | + it "to #files" do | |
| 83 | + get("/gitlabhq/files").should route_to('projects#files', id: 'gitlabhq') | |
| 84 | + end | |
| 85 | + | |
| 86 | + it "to #edit" do | |
| 87 | + get("/gitlabhq/edit").should route_to('projects#edit', id: 'gitlabhq') | |
| 88 | + end | |
| 89 | + | |
| 90 | + it "to #show" do | |
| 91 | + get("/gitlabhq").should route_to('projects#show', id: 'gitlabhq') | |
| 92 | + end | |
| 93 | + | |
| 94 | + it "to #update" do | |
| 95 | + put("/gitlabhq").should route_to('projects#update', id: 'gitlabhq') | |
| 96 | + end | |
| 97 | + | |
| 98 | + it "to #destroy" do | |
| 99 | + delete("/gitlabhq").should route_to('projects#destroy', id: 'gitlabhq') | |
| 100 | + end | |
| 101 | +end | |
| 102 | + | |
| 103 | +# pages_project_wikis GET /:project_id/wikis/pages(.:format) wikis#pages | |
| 104 | +# history_project_wiki GET /:project_id/wikis/:id/history(.:format) wikis#history | |
| 105 | +# project_wikis POST /:project_id/wikis(.:format) wikis#create | |
| 106 | +# edit_project_wiki GET /:project_id/wikis/:id/edit(.:format) wikis#edit | |
| 107 | +# project_wiki GET /:project_id/wikis/:id(.:format) wikis#show | |
| 108 | +# DELETE /:project_id/wikis/:id(.:format) wikis#destroy | |
| 109 | +describe WikisController, "routing" do | |
| 110 | + it "to #pages" do | |
| 111 | + get("/gitlabhq/wikis/pages").should route_to('wikis#pages', project_id: 'gitlabhq') | |
| 112 | + end | |
| 113 | + | |
| 114 | + it "to #history" do | |
| 115 | + get("/gitlabhq/wikis/1/history").should route_to('wikis#history', project_id: 'gitlabhq', id: '1') | |
| 116 | + end | |
| 117 | + | |
| 118 | + it_behaves_like "RESTful project resources" do | |
| 119 | + let(:actions) { [:create, :edit, :show, :destroy] } | |
| 120 | + let(:controller) { 'wikis' } | |
| 121 | + end | |
| 122 | +end | |
| 123 | + | |
| 124 | +# branches_project_repository GET /:project_id/repository/branches(.:format) repositories#branches | |
| 125 | +# tags_project_repository GET /:project_id/repository/tags(.:format) repositories#tags | |
| 126 | +# archive_project_repository GET /:project_id/repository/archive(.:format) repositories#archive | |
| 127 | +# project_repository POST /:project_id/repository(.:format) repositories#create | |
| 128 | +# new_project_repository GET /:project_id/repository/new(.:format) repositories#new | |
| 129 | +# edit_project_repository GET /:project_id/repository/edit(.:format) repositories#edit | |
| 130 | +# GET /:project_id/repository(.:format) repositories#show | |
| 131 | +# PUT /:project_id/repository(.:format) repositories#update | |
| 132 | +# DELETE /:project_id/repository(.:format) repositories#destroy | |
| 133 | +describe RepositoriesController, "routing" do | |
| 134 | + it "to #branches" do | |
| 135 | + get("/gitlabhq/repository/branches").should route_to('repositories#branches', project_id: 'gitlabhq') | |
| 136 | + end | |
| 137 | + | |
| 138 | + it "to #tags" do | |
| 139 | + get("/gitlabhq/repository/tags").should route_to('repositories#tags', project_id: 'gitlabhq') | |
| 140 | + end | |
| 141 | + | |
| 142 | + it "to #archive" do | |
| 143 | + get("/gitlabhq/repository/archive").should route_to('repositories#archive', project_id: 'gitlabhq') | |
| 144 | + end | |
| 145 | + | |
| 146 | + it "to #create" do | |
| 147 | + post("/gitlabhq/repository").should route_to('repositories#create', project_id: 'gitlabhq') | |
| 148 | + end | |
| 149 | + | |
| 150 | + it "to #new" do | |
| 151 | + get("/gitlabhq/repository/new").should route_to('repositories#new', project_id: 'gitlabhq') | |
| 152 | + end | |
| 153 | + | |
| 154 | + it "to #edit" do | |
| 155 | + get("/gitlabhq/repository/edit").should route_to('repositories#edit', project_id: 'gitlabhq') | |
| 156 | + end | |
| 157 | + | |
| 158 | + it "to #show" do | |
| 159 | + get("/gitlabhq/repository").should route_to('repositories#show', project_id: 'gitlabhq') | |
| 160 | + end | |
| 161 | + | |
| 162 | + it "to #update" do | |
| 163 | + put("/gitlabhq/repository").should route_to('repositories#update', project_id: 'gitlabhq') | |
| 164 | + end | |
| 165 | + | |
| 166 | + it "to #destroy" do | |
| 167 | + delete("/gitlabhq/repository").should route_to('repositories#destroy', project_id: 'gitlabhq') | |
| 168 | + end | |
| 169 | +end | |
| 170 | + | |
| 171 | +# project_deploy_keys GET /:project_id/deploy_keys(.:format) deploy_keys#index | |
| 172 | +# POST /:project_id/deploy_keys(.:format) deploy_keys#create | |
| 173 | +# new_project_deploy_key GET /:project_id/deploy_keys/new(.:format) deploy_keys#new | |
| 174 | +# edit_project_deploy_key GET /:project_id/deploy_keys/:id/edit(.:format) deploy_keys#edit | |
| 175 | +# project_deploy_key GET /:project_id/deploy_keys/:id(.:format) deploy_keys#show | |
| 176 | +# PUT /:project_id/deploy_keys/:id(.:format) deploy_keys#update | |
| 177 | +# DELETE /:project_id/deploy_keys/:id(.:format) deploy_keys#destroy | |
| 178 | +describe DeployKeysController, "routing" do | |
| 179 | + it_behaves_like "RESTful project resources" do | |
| 180 | + let(:controller) { 'deploy_keys' } | |
| 181 | + end | |
| 182 | +end | |
| 183 | + | |
| 184 | +# project_protected_branches GET /:project_id/protected_branches(.:format) protected_branches#index | |
| 185 | +# POST /:project_id/protected_branches(.:format) protected_branches#create | |
| 186 | +# project_protected_branch DELETE /:project_id/protected_branches/:id(.:format) protected_branches#destroy | |
| 187 | +describe ProtectedBranchesController, "routing" do | |
| 188 | + it_behaves_like "RESTful project resources" do | |
| 189 | + let(:actions) { [:index, :create, :destroy] } | |
| 190 | + let(:controller) { 'protected_branches' } | |
| 191 | + end | |
| 192 | +end | |
| 193 | + | |
| 194 | +# switch_project_refs GET /:project_id/switch(.:format) refs#switch | |
| 195 | +# tree_project_ref GET /:project_id/:id/tree(.:format) refs#tree | |
| 196 | +# logs_tree_project_ref GET /:project_id/:id/logs_tree(.:format) refs#logs_tree | |
| 197 | +# blob_project_ref GET /:project_id/:id/blob(.:format) refs#blob | |
| 198 | +# tree_file_project_ref GET /:project_id/:id/tree/:path(.:format) refs#tree | |
| 199 | +# logs_file_project_ref GET /:project_id/:id/logs_tree/:path(.:format) refs#logs_tree | |
| 200 | +# blame_file_project_ref GET /:project_id/:id/blame/:path(.:format) refs#blame | |
| 201 | +describe RefsController, "routing" do | |
| 202 | + it "to #switch" do | |
| 203 | + get("/gitlabhq/switch").should route_to('refs#switch', project_id: 'gitlabhq') | |
| 204 | + end | |
| 205 | + | |
| 206 | + it "to #tree" do | |
| 207 | + get("/gitlabhq/stable/tree").should route_to('refs#tree', project_id: 'gitlabhq', id: 'stable') | |
| 208 | + get("/gitlabhq/stable/tree/foo/bar/baz").should route_to('refs#tree', project_id: 'gitlabhq', id: 'stable', path: 'foo/bar/baz') | |
| 209 | + end | |
| 210 | + | |
| 211 | + it "to #logs_tree" do | |
| 212 | + get("/gitlabhq/stable/logs_tree").should route_to('refs#logs_tree', project_id: 'gitlabhq', id: 'stable') | |
| 213 | + get("/gitlabhq/stable/logs_tree/foo/bar/baz").should route_to('refs#logs_tree', project_id: 'gitlabhq', id: 'stable', path: 'foo/bar/baz') | |
| 214 | + end | |
| 215 | + | |
| 216 | + it "to #blob" do | |
| 217 | + get("/gitlabhq/stable/blob").should route_to('refs#blob', project_id: 'gitlabhq', id: 'stable') | |
| 218 | + end | |
| 219 | + | |
| 220 | + it "to #blame" do | |
| 221 | + get("/gitlabhq/stable/blame/foo/bar/baz").should route_to('refs#blame', project_id: 'gitlabhq', id: 'stable', path: 'foo/bar/baz') | |
| 222 | + end | |
| 223 | +end | |
| 224 | + | |
| 225 | +# diffs_project_merge_request GET /:project_id/merge_requests/:id/diffs(.:format) merge_requests#diffs | |
| 226 | +# automerge_project_merge_request GET /:project_id/merge_requests/:id/automerge(.:format) merge_requests#automerge | |
| 227 | +# automerge_check_project_merge_request GET /:project_id/merge_requests/:id/automerge_check(.:format) merge_requests#automerge_check | |
| 228 | +# raw_project_merge_request GET /:project_id/merge_requests/:id/raw(.:format) merge_requests#raw | |
| 229 | +# branch_from_project_merge_requests GET /:project_id/merge_requests/branch_from(.:format) merge_requests#branch_from | |
| 230 | +# branch_to_project_merge_requests GET /:project_id/merge_requests/branch_to(.:format) merge_requests#branch_to | |
| 231 | +# project_merge_requests GET /:project_id/merge_requests(.:format) merge_requests#index | |
| 232 | +# POST /:project_id/merge_requests(.:format) merge_requests#create | |
| 233 | +# new_project_merge_request GET /:project_id/merge_requests/new(.:format) merge_requests#new | |
| 234 | +# edit_project_merge_request GET /:project_id/merge_requests/:id/edit(.:format) merge_requests#edit | |
| 235 | +# project_merge_request GET /:project_id/merge_requests/:id(.:format) merge_requests#show | |
| 236 | +# PUT /:project_id/merge_requests/:id(.:format) merge_requests#update | |
| 237 | +# DELETE /:project_id/merge_requests/:id(.:format) merge_requests#destroy | |
| 238 | +describe MergeRequestsController, "routing" do | |
| 239 | + it "to #diffs" do | |
| 240 | + get("/gitlabhq/merge_requests/1/diffs").should route_to('merge_requests#diffs', project_id: 'gitlabhq', id: '1') | |
| 241 | + end | |
| 242 | + | |
| 243 | + it "to #automerge" do | |
| 244 | + get("/gitlabhq/merge_requests/1/automerge").should route_to('merge_requests#automerge', project_id: 'gitlabhq', id: '1') | |
| 245 | + end | |
| 246 | + | |
| 247 | + it "to #automerge_check" do | |
| 248 | + get("/gitlabhq/merge_requests/1/automerge_check").should route_to('merge_requests#automerge_check', project_id: 'gitlabhq', id: '1') | |
| 249 | + end | |
| 250 | + | |
| 251 | + it "to #raw" do | |
| 252 | + get("/gitlabhq/merge_requests/1/raw").should route_to('merge_requests#raw', project_id: 'gitlabhq', id: '1') | |
| 253 | + end | |
| 254 | + | |
| 255 | + it "to #branch_from" do | |
| 256 | + get("/gitlabhq/merge_requests/branch_from").should route_to('merge_requests#branch_from', project_id: 'gitlabhq') | |
| 257 | + end | |
| 258 | + | |
| 259 | + it "to #branch_to" do | |
| 260 | + get("/gitlabhq/merge_requests/branch_to").should route_to('merge_requests#branch_to', project_id: 'gitlabhq') | |
| 261 | + end | |
| 262 | + | |
| 263 | + it_behaves_like "RESTful project resources" do | |
| 264 | + let(:controller) { 'merge_requests' } | |
| 265 | + end | |
| 266 | +end | |
| 267 | + | |
| 268 | +# raw_project_snippet GET /:project_id/snippets/:id/raw(.:format) snippets#raw | |
| 269 | +# project_snippets GET /:project_id/snippets(.:format) snippets#index | |
| 270 | +# POST /:project_id/snippets(.:format) snippets#create | |
| 271 | +# new_project_snippet GET /:project_id/snippets/new(.:format) snippets#new | |
| 272 | +# edit_project_snippet GET /:project_id/snippets/:id/edit(.:format) snippets#edit | |
| 273 | +# project_snippet GET /:project_id/snippets/:id(.:format) snippets#show | |
| 274 | +# PUT /:project_id/snippets/:id(.:format) snippets#update | |
| 275 | +# DELETE /:project_id/snippets/:id(.:format) snippets#destroy | |
| 276 | +describe SnippetsController, "routing" do | |
| 277 | + it "to #raw" do | |
| 278 | + get("/gitlabhq/snippets/1/raw").should route_to('snippets#raw', project_id: 'gitlabhq', id: '1') | |
| 279 | + end | |
| 280 | + | |
| 281 | + it_behaves_like "RESTful project resources" do | |
| 282 | + let(:controller) { 'snippets' } | |
| 283 | + end | |
| 284 | +end | |
| 285 | + | |
| 286 | +# test_project_hook GET /:project_id/hooks/:id/test(.:format) hooks#test | |
| 287 | +# project_hooks GET /:project_id/hooks(.:format) hooks#index | |
| 288 | +# POST /:project_id/hooks(.:format) hooks#create | |
| 289 | +# project_hook DELETE /:project_id/hooks/:id(.:format) hooks#destroy | |
| 290 | +describe HooksController, "routing" do | |
| 291 | + it "to #test" do | |
| 292 | + get("/gitlabhq/hooks/1/test").should route_to('hooks#test', project_id: 'gitlabhq', id: '1') | |
| 293 | + end | |
| 294 | + | |
| 295 | + it_behaves_like "RESTful project resources" do | |
| 296 | + let(:actions) { [:index, :create, :destroy] } | |
| 297 | + let(:controller) { 'hooks' } | |
| 298 | + end | |
| 299 | +end | |
| 300 | + | |
| 301 | +# compare_project_commits GET /:project_id/commits/compare(.:format) commits#compare | |
| 302 | +# patch_project_commit GET /:project_id/commits/:id/patch(.:format) commits#patch | |
| 303 | +# project_commits GET /:project_id/commits(.:format) commits#index | |
| 304 | +# POST /:project_id/commits(.:format) commits#create | |
| 305 | +# new_project_commit GET /:project_id/commits/new(.:format) commits#new | |
| 306 | +# edit_project_commit GET /:project_id/commits/:id/edit(.:format) commits#edit | |
| 307 | +# project_commit GET /:project_id/commits/:id(.:format) commits#show | |
| 308 | +# PUT /:project_id/commits/:id(.:format) commits#update | |
| 309 | +# DELETE /:project_id/commits/:id(.:format) commits#destroy | |
| 310 | +describe CommitsController, "routing" do | |
| 311 | + it "to #compare" do | |
| 312 | + get("/gitlabhq/commits/compare").should route_to('commits#compare', project_id: 'gitlabhq') | |
| 313 | + end | |
| 314 | + | |
| 315 | + it "to #patch" do | |
| 316 | + get("/gitlabhq/commits/1/patch").should route_to('commits#patch', project_id: 'gitlabhq', id: '1') | |
| 317 | + end | |
| 318 | + | |
| 319 | + it_behaves_like "RESTful project resources" do | |
| 320 | + let(:controller) { 'commits' } | |
| 321 | + end | |
| 322 | +end | |
| 323 | + | |
| 324 | +# project_team_members GET /:project_id/team_members(.:format) team_members#index | |
| 325 | +# POST /:project_id/team_members(.:format) team_members#create | |
| 326 | +# new_project_team_member GET /:project_id/team_members/new(.:format) team_members#new | |
| 327 | +# edit_project_team_member GET /:project_id/team_members/:id/edit(.:format) team_members#edit | |
| 328 | +# project_team_member GET /:project_id/team_members/:id(.:format) team_members#show | |
| 329 | +# PUT /:project_id/team_members/:id(.:format) team_members#update | |
| 330 | +# DELETE /:project_id/team_members/:id(.:format) team_members#destroy | |
| 331 | +describe TeamMembersController, "routing" do | |
| 332 | + it_behaves_like "RESTful project resources" do | |
| 333 | + let(:controller) { 'team_members' } | |
| 334 | + end | |
| 335 | +end | |
| 336 | + | |
| 337 | +# project_milestones GET /:project_id/milestones(.:format) milestones#index | |
| 338 | +# POST /:project_id/milestones(.:format) milestones#create | |
| 339 | +# new_project_milestone GET /:project_id/milestones/new(.:format) milestones#new | |
| 340 | +# edit_project_milestone GET /:project_id/milestones/:id/edit(.:format) milestones#edit | |
| 341 | +# project_milestone GET /:project_id/milestones/:id(.:format) milestones#show | |
| 342 | +# PUT /:project_id/milestones/:id(.:format) milestones#update | |
| 343 | +# DELETE /:project_id/milestones/:id(.:format) milestones#destroy | |
| 344 | +describe MilestonesController, "routing" do | |
| 345 | + it_behaves_like "RESTful project resources" do | |
| 346 | + let(:controller) { 'milestones' } | |
| 347 | + end | |
| 348 | +end | |
| 349 | + | |
| 350 | +# project_labels GET /:project_id/labels(.:format) labels#index | |
| 351 | +describe LabelsController, "routing" do | |
| 352 | + it "to #index" do | |
| 353 | + get("/gitlabhq/labels").should route_to('labels#index', project_id: 'gitlabhq') | |
| 354 | + end | |
| 355 | +end | |
| 356 | + | |
| 357 | +# sort_project_issues POST /:project_id/issues/sort(.:format) issues#sort | |
| 358 | +# bulk_update_project_issues POST /:project_id/issues/bulk_update(.:format) issues#bulk_update | |
| 359 | +# search_project_issues GET /:project_id/issues/search(.:format) issues#search | |
| 360 | +# project_issues GET /:project_id/issues(.:format) issues#index | |
| 361 | +# POST /:project_id/issues(.:format) issues#create | |
| 362 | +# new_project_issue GET /:project_id/issues/new(.:format) issues#new | |
| 363 | +# edit_project_issue GET /:project_id/issues/:id/edit(.:format) issues#edit | |
| 364 | +# project_issue GET /:project_id/issues/:id(.:format) issues#show | |
| 365 | +# PUT /:project_id/issues/:id(.:format) issues#update | |
| 366 | +# DELETE /:project_id/issues/:id(.:format) issues#destroy | |
| 367 | +describe IssuesController, "routing" do | |
| 368 | + it "to #sort" do | |
| 369 | + post("/gitlabhq/issues/sort").should route_to('issues#sort', project_id: 'gitlabhq') | |
| 370 | + end | |
| 371 | + | |
| 372 | + it "to #bulk_update" do | |
| 373 | + post("/gitlabhq/issues/bulk_update").should route_to('issues#bulk_update', project_id: 'gitlabhq') | |
| 374 | + end | |
| 375 | + | |
| 376 | + it "to #search" do | |
| 377 | + get("/gitlabhq/issues/search").should route_to('issues#search', project_id: 'gitlabhq') | |
| 378 | + end | |
| 379 | + | |
| 380 | + it_behaves_like "RESTful project resources" do | |
| 381 | + let(:controller) { 'issues' } | |
| 382 | + end | |
| 383 | +end | |
| 384 | + | |
| 385 | +# preview_project_notes POST /:project_id/notes/preview(.:format) notes#preview | |
| 386 | +# project_notes GET /:project_id/notes(.:format) notes#index | |
| 387 | +# POST /:project_id/notes(.:format) notes#create | |
| 388 | +# project_note DELETE /:project_id/notes/:id(.:format) notes#destroy | |
| 389 | +describe NotesController, "routing" do | |
| 390 | + it "to #preview" do | |
| 391 | + post("/gitlabhq/notes/preview").should route_to('notes#preview', project_id: 'gitlabhq') | |
| 392 | + end | |
| 393 | + | |
| 394 | + it_behaves_like "RESTful project resources" do | |
| 395 | + let(:actions) { [:index, :create, :destroy] } | |
| 396 | + let(:controller) { 'notes' } | |
| 397 | + end | |
| 398 | +end | ... | ... |
| ... | ... | @@ -0,0 +1,186 @@ |
| 1 | +require 'spec_helper' | |
| 2 | + | |
| 3 | +# search GET /search(.:format) search#show | |
| 4 | +describe SearchController, "routing" do | |
| 5 | + it "to #show" do | |
| 6 | + get("/search").should route_to('search#show') | |
| 7 | + end | |
| 8 | +end | |
| 9 | + | |
| 10 | +# gitlab_api /api Gitlab::API | |
| 11 | +# resque /info/resque Resque::Server | |
| 12 | +# /:path Grack | |
| 13 | +describe "Mounted Apps", "routing" do | |
| 14 | + it "to API" do | |
| 15 | + get("/api").should be_routable | |
| 16 | + end | |
| 17 | + | |
| 18 | + it "to Resque" do | |
| 19 | + pending | |
| 20 | + get("/info/resque").should be_routable | |
| 21 | + end | |
| 22 | + | |
| 23 | + it "to Grack" do | |
| 24 | + get("/gitlabhq.git").should be_routable | |
| 25 | + end | |
| 26 | +end | |
| 27 | + | |
| 28 | +# help GET /help(.:format) help#index | |
| 29 | +# help_permissions GET /help/permissions(.:format) help#permissions | |
| 30 | +# help_workflow GET /help/workflow(.:format) help#workflow | |
| 31 | +# help_api GET /help/api(.:format) help#api | |
| 32 | +# help_web_hooks GET /help/web_hooks(.:format) help#web_hooks | |
| 33 | +# help_system_hooks GET /help/system_hooks(.:format) help#system_hooks | |
| 34 | +# help_markdown GET /help/markdown(.:format) help#markdown | |
| 35 | +# help_ssh GET /help/ssh(.:format) help#ssh | |
| 36 | +describe HelpController, "routing" do | |
| 37 | + it "to #index" do | |
| 38 | + get("/help").should route_to('help#index') | |
| 39 | + end | |
| 40 | + | |
| 41 | + it "to #permissions" do | |
| 42 | + get("/help/permissions").should route_to('help#permissions') | |
| 43 | + end | |
| 44 | + | |
| 45 | + it "to #workflow" do | |
| 46 | + get("/help/workflow").should route_to('help#workflow') | |
| 47 | + end | |
| 48 | + | |
| 49 | + it "to #api" do | |
| 50 | + get("/help/api").should route_to('help#api') | |
| 51 | + end | |
| 52 | + | |
| 53 | + it "to #web_hooks" do | |
| 54 | + get("/help/web_hooks").should route_to('help#web_hooks') | |
| 55 | + end | |
| 56 | + | |
| 57 | + it "to #system_hooks" do | |
| 58 | + get("/help/system_hooks").should route_to('help#system_hooks') | |
| 59 | + end | |
| 60 | + | |
| 61 | + it "to #markdown" do | |
| 62 | + get("/help/markdown").should route_to('help#markdown') | |
| 63 | + end | |
| 64 | + | |
| 65 | + it "to #ssh" do | |
| 66 | + get("/help/ssh").should route_to('help#ssh') | |
| 67 | + end | |
| 68 | +end | |
| 69 | + | |
| 70 | +# errors_githost GET /errors/githost(.:format) errors#githost | |
| 71 | +describe ErrorsController, "routing" do | |
| 72 | + it "to #githost" do | |
| 73 | + get("/errors/githost").should route_to('errors#githost') | |
| 74 | + end | |
| 75 | +end | |
| 76 | + | |
| 77 | +# profile_account GET /profile/account(.:format) profile#account | |
| 78 | +# profile_history GET /profile/history(.:format) profile#history | |
| 79 | +# profile_password PUT /profile/password(.:format) profile#password_update | |
| 80 | +# profile_token GET /profile/token(.:format) profile#token | |
| 81 | +# profile_reset_private_token PUT /profile/reset_private_token(.:format) profile#reset_private_token | |
| 82 | +# profile GET /profile(.:format) profile#show | |
| 83 | +# profile_design GET /profile/design(.:format) profile#design | |
| 84 | +# profile_update PUT /profile/update(.:format) profile#update | |
| 85 | +describe ProfileController, "routing" do | |
| 86 | + it "to #account" do | |
| 87 | + get("/profile/account").should route_to('profile#account') | |
| 88 | + end | |
| 89 | + | |
| 90 | + it "to #history" do | |
| 91 | + get("/profile/history").should route_to('profile#history') | |
| 92 | + end | |
| 93 | + | |
| 94 | + it "to #password_update" do | |
| 95 | + put("/profile/password").should route_to('profile#password_update') | |
| 96 | + end | |
| 97 | + | |
| 98 | + it "to #token" do | |
| 99 | + get("/profile/token").should route_to('profile#token') | |
| 100 | + end | |
| 101 | + | |
| 102 | + it "to #reset_private_token" do | |
| 103 | + put("/profile/reset_private_token").should route_to('profile#reset_private_token') | |
| 104 | + end | |
| 105 | + | |
| 106 | + it "to #show" do | |
| 107 | + get("/profile").should route_to('profile#show') | |
| 108 | + end | |
| 109 | + | |
| 110 | + it "to #design" do | |
| 111 | + get("/profile/design").should route_to('profile#design') | |
| 112 | + end | |
| 113 | + | |
| 114 | + it "to #update" do | |
| 115 | + put("/profile/update").should route_to('profile#update') | |
| 116 | + end | |
| 117 | +end | |
| 118 | + | |
| 119 | +# keys GET /keys(.:format) keys#index | |
| 120 | +# POST /keys(.:format) keys#create | |
| 121 | +# new_key GET /keys/new(.:format) keys#new | |
| 122 | +# edit_key GET /keys/:id/edit(.:format) keys#edit | |
| 123 | +# key GET /keys/:id(.:format) keys#show | |
| 124 | +# PUT /keys/:id(.:format) keys#update | |
| 125 | +# DELETE /keys/:id(.:format) keys#destroy | |
| 126 | +describe KeysController, "routing" do | |
| 127 | + it "to #index" do | |
| 128 | + get("/keys").should route_to('keys#index') | |
| 129 | + end | |
| 130 | + | |
| 131 | + it "to #create" do | |
| 132 | + post("/keys").should route_to('keys#create') | |
| 133 | + end | |
| 134 | + | |
| 135 | + it "to #new" do | |
| 136 | + get("/keys/new").should route_to('keys#new') | |
| 137 | + end | |
| 138 | + | |
| 139 | + it "to #edit" do | |
| 140 | + get("/keys/1/edit").should route_to('keys#edit', id: '1') | |
| 141 | + end | |
| 142 | + | |
| 143 | + it "to #show" do | |
| 144 | + get("/keys/1").should route_to('keys#show', id: '1') | |
| 145 | + end | |
| 146 | + | |
| 147 | + it "to #update" do | |
| 148 | + put("/keys/1").should route_to('keys#update', id: '1') | |
| 149 | + end | |
| 150 | + | |
| 151 | + it "to #destroy" do | |
| 152 | + delete("/keys/1").should route_to('keys#destroy', id: '1') | |
| 153 | + end | |
| 154 | +end | |
| 155 | + | |
| 156 | +# dashboard GET /dashboard(.:format) dashboard#index | |
| 157 | +# dashboard_issues GET /dashboard/issues(.:format) dashboard#issues | |
| 158 | +# dashboard_merge_requests GET /dashboard/merge_requests(.:format) dashboard#merge_requests | |
| 159 | +# root / dashboard#index | |
| 160 | +describe DashboardController, "routing" do | |
| 161 | + it "to #index" do | |
| 162 | + get("/dashboard").should route_to('dashboard#index') | |
| 163 | + get("/").should route_to('dashboard#index') | |
| 164 | + end | |
| 165 | + | |
| 166 | + it "to #issues" do | |
| 167 | + get("/dashboard/issues").should route_to('dashboard#issues') | |
| 168 | + end | |
| 169 | + | |
| 170 | + it "to #merge_requests" do | |
| 171 | + get("/dashboard/merge_requests").should route_to('dashboard#merge_requests') | |
| 172 | + end | |
| 173 | +end | |
| 174 | + | |
| 175 | +# new_user_session GET /users/sign_in(.:format) devise/sessions#new | |
| 176 | +# user_session POST /users/sign_in(.:format) devise/sessions#create | |
| 177 | +# destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy | |
| 178 | +# user_omniauth_authorize /users/auth/:provider(.:format) omniauth_callbacks#passthru | |
| 179 | +# user_omniauth_callback /users/auth/:action/callback(.:format) omniauth_callbacks#(?-mix:(?!)) | |
| 180 | +# user_password POST /users/password(.:format) devise/passwords#create | |
| 181 | +# new_user_password GET /users/password/new(.:format) devise/passwords#new | |
| 182 | +# edit_user_password GET /users/password/edit(.:format) devise/passwords#edit | |
| 183 | +# PUT /users/password(.:format) devise/passwords#update | |
| 184 | +describe "Authentication", "routing" do | |
| 185 | + # pending | |
| 186 | +end | ... | ... |