From f614ae8ef71bf1de7deeeaadbdf9a4a8614771b1 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Wed, 21 Nov 2012 07:14:05 +0300 Subject: [PATCH] Increased test coverage --- app/views/projects/_clone_panel.html.haml | 6 ++-- app/views/snippets/_form.html.haml | 40 ++++++++++----------- features/support/env.rb | 7 +++- spec/models/group_spec.rb | 8 +++++ spec/models/namespace_spec.rb | 42 +++++++++++++++++++++++ spec/spec_helper.rb | 5 +++ spec/support/namespaces_stub.rb | 18 ---------- 7 files changed, 84 insertions(+), 42 deletions(-) delete mode 100644 spec/support/namespaces_stub.rb diff --git a/app/views/projects/_clone_panel.html.haml b/app/views/projects/_clone_panel.html.haml index 461f4feaf61..2962ad980b3 100644 --- a/app/views/projects/_clone_panel.html.haml +++ b/app/views/projects/_clone_panel.html.haml @@ -6,12 +6,12 @@ .right - unless @project.empty_repo? - if can? current_user, :download_code, @project - = link_to archive_project_repository_path(@project), class: "btn grouped" do + = link_to archive_project_repository_path(@project), class: "btn-small btn grouped" do %i.icon-download-alt Download - if @project.merge_requests_enabled && can?(current_user, :write_merge_request, @project) - = link_to new_project_merge_request_path(@project), title: "New Merge Request", class: "btn grouped" do + = link_to new_project_merge_request_path(@project), title: "New Merge Request", class: "btn-small btn grouped" do Merge Request - if @project.issues_enabled && can?(current_user, :write_issue, @project) - = link_to new_project_issue_path(@project), title: "New Issue", class: "btn grouped" do + = link_to new_project_issue_path(@project), title: "New Issue", class: "btn-small btn grouped" do Issue diff --git a/app/views/snippets/_form.html.haml b/app/views/snippets/_form.html.haml index e61e61a7e5e..981c7cf0c12 100644 --- a/app/views/snippets/_form.html.haml +++ b/app/views/snippets/_form.html.haml @@ -1,27 +1,27 @@ -%h3= @snippet.new_record? ? "New Snippet" : "Edit Snippet ##{@snippet.id}" +%h3.page_title + = @snippet.new_record? ? "New Snippet" : "Edit Snippet ##{@snippet.id}" %hr = form_for [@project, @snippet] do |f| - %table.no-borders - -if @snippet.errors.any? - .alert-message.block-message.error - %ul - - @snippet.errors.full_messages.each do |msg| - %li= msg + -if @snippet.errors.any? + .alert-message.block-message.error + %ul + - @snippet.errors.full_messages.each do |msg| + %li= msg - .clearfix - = f.label :title - .input= f.text_field :title, placeholder: "Example Snippet" - .clearfix - = f.label :file_name - .input= f.text_field :file_name, placeholder: "example.rb" - .clearfix - = f.label "Lifetime" - .input= f.select :expires_at, lifetime_select_options, {}, {class: 'chosen span2'} - .clearfix - = f.label :content, "Code" - .input= f.text_area :content, class: "span8" + .clearfix + = f.label :title + .input= f.text_field :title, placeholder: "Example Snippet" + .clearfix + = f.label :file_name + .input= f.text_field :file_name, placeholder: "example.rb" + .clearfix + = f.label "Lifetime" + .input= f.select :expires_at, lifetime_select_options, {}, {class: 'chosen span2'} + .clearfix + = f.label :content, "Code" + .input= f.text_area :content, class: "span8" - .actions + .form-actions = f.submit 'Save', class: "primary btn" = link_to "Cancel", project_snippets_path(@project), class: " btn" - unless @snippet.new_record? diff --git a/features/support/env.rb b/features/support/env.rb index 42aba5a6d68..a30b357718e 100644 --- a/features/support/env.rb +++ b/features/support/env.rb @@ -5,7 +5,7 @@ require 'rspec' require 'database_cleaner' require 'spinach/capybara' -%w(namespaces_stub gitolite_stub stubbed_repository valid_commit).each do |f| +%w(gitolite_stub stubbed_repository valid_commit).each do |f| require Rails.root.join('spec', 'support', f) end @@ -32,6 +32,11 @@ end DatabaseCleaner.strategy = :truncation Spinach.hooks.before_scenario do + # Use tmp dir for FS manipulations + Gitlab.config.stub(git_base_path: Rails.root.join('tmp', 'test-git-base-path')) + FileUtils.rm_rf Gitlab.config.git_base_path + FileUtils.mkdir_p Gitlab.config.git_base_path + DatabaseCleaner.start end diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb index 80583243a2f..884726266cb 100644 --- a/spec/models/group_spec.rb +++ b/spec/models/group_spec.rb @@ -22,4 +22,12 @@ describe Group do it { should validate_presence_of :path } it { should validate_uniqueness_of(:path) } it { should validate_presence_of :owner } + + describe :users do + it { group.users.should == [] } + end + + describe :human_name do + it { group.human_name.should == group.name } + end end diff --git a/spec/models/namespace_spec.rb b/spec/models/namespace_spec.rb index 16ab1b617ff..1f1d66150fb 100644 --- a/spec/models/namespace_spec.rb +++ b/spec/models/namespace_spec.rb @@ -32,4 +32,46 @@ describe Namespace do it { should respond_to(:human_name) } it { should respond_to(:to_param) } end + + it { Namespace.global_id.should == 'GLN' } + + describe :to_param do + it { namespace.to_param.should == namespace.path } + end + + describe :human_name do + it { namespace.human_name.should == namespace.owner_name } + end + + describe :search do + before do + @namespace = create :namespace + end + + it { Namespace.search(@namespace.path).should == [@namespace] } + it { Namespace.search('unknown').should == [] } + end + + describe :move_dir do + before do + @namespace = create :namespace + end + + it "should raise error when called directly" do + expect { @namespace.move_dir }.to raise_error("Already exists") + end + + it "should move dir if path changed" do + new_path = @namespace.path + "_new" + @namespace.stub(path_was: @namespace.path) + @namespace.stub(path: new_path) + @namespace.move_dir.should be_true + end + end + + describe :rm_dir do + it "should remove dir" do + namespace.rm_dir.should be_true + end + end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index ace5ca00cc1..7728b1e9d84 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -40,5 +40,10 @@ RSpec.configure do |config| # !!! Observers disabled by default in tests ActiveRecord::Base.observers.disable(:all) # ActiveRecord::Base.observers.enable(:all) + + # Use tmp dir for FS manipulations + Gitlab.config.stub(git_base_path: Rails.root.join('tmp', 'test-git-base-path')) + FileUtils.rm_rf Gitlab.config.git_base_path + FileUtils.mkdir_p Gitlab.config.git_base_path end end diff --git a/spec/support/namespaces_stub.rb b/spec/support/namespaces_stub.rb deleted file mode 100644 index c55b8101b07..00000000000 --- a/spec/support/namespaces_stub.rb +++ /dev/null @@ -1,18 +0,0 @@ -require 'namespace' -require 'gitlab/project_mover' - -class Namespace - def ensure_dir_exist - true - end - - def move_dir - true - end -end - -#class Gitlab::ProjectMover - #def execute - #true - #end -#end