Merge branch 'assets-refactoring' into dev
Conflicts: app/controllers/issues_controller.rb app/views/issues/index.html.haml
This commit is contained in:
commit
f1e6d9be90
116 changed files with 1431 additions and 1455 deletions
|
@ -1,7 +1,7 @@
|
|||
class Factory
|
||||
@factories = {}
|
||||
|
||||
class << self
|
||||
class << self
|
||||
def add(name, klass, &block)
|
||||
@factories[name] = [klass, block]
|
||||
end
|
||||
|
@ -13,10 +13,10 @@ class Factory
|
|||
def new(name, opts)
|
||||
factory = @factories[name]
|
||||
factory[0].new.tap do |obj|
|
||||
factory[1].call(obj)
|
||||
factory[1].call(obj)
|
||||
end.tap do |obj|
|
||||
opts.each do |k, opt|
|
||||
obj.send("#{k}=", opt)
|
||||
obj.send("#{k}=", opt)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -14,7 +14,7 @@ describe Issue do
|
|||
it { should validate_presence_of(:assignee_id) }
|
||||
end
|
||||
|
||||
describe "Scope" do
|
||||
describe "Scope" do
|
||||
it { Issue.should respond_to :closed }
|
||||
it { Issue.should respond_to :opened }
|
||||
end
|
||||
|
|
|
@ -10,7 +10,7 @@ describe Key do
|
|||
it { should validate_presence_of(:key) }
|
||||
end
|
||||
|
||||
describe "Methods" do
|
||||
describe "Methods" do
|
||||
it { should respond_to :projects }
|
||||
end
|
||||
|
||||
|
|
|
@ -13,8 +13,8 @@ describe Note do
|
|||
it { Factory.create(:note,
|
||||
:project => Factory.create(:project)).should be_valid }
|
||||
|
||||
describe :authorization do
|
||||
before do
|
||||
describe :authorization do
|
||||
before do
|
||||
@p1 = Factory :project
|
||||
@p2 = Factory :project, :code => "alien", :path => "legit_1"
|
||||
@u1 = Factory :user
|
||||
|
@ -24,10 +24,10 @@ describe Note do
|
|||
@abilities << Ability
|
||||
end
|
||||
|
||||
describe :read do
|
||||
before do
|
||||
@p1.users_projects.create(:user => @u1, :read => false)
|
||||
@p1.users_projects.create(:user => @u2, :read => true)
|
||||
describe :read do
|
||||
before do
|
||||
@p1.users_projects.create(:user => @u1, :read => false)
|
||||
@p1.users_projects.create(:user => @u2, :read => true)
|
||||
@p2.users_projects.create(:user => @u3, :read => true)
|
||||
end
|
||||
|
||||
|
@ -36,11 +36,11 @@ describe Note do
|
|||
it { @abilities.allowed?(@u3, :read_note, @p1).should be_false }
|
||||
end
|
||||
|
||||
describe :write do
|
||||
before do
|
||||
@p1.users_projects.create(:user => @u1, :write => false)
|
||||
@p1.users_projects.create(:user => @u2, :write => true)
|
||||
@p2.users_projects.create(:user => @u3, :write => true)
|
||||
describe :write do
|
||||
before do
|
||||
@p1.users_projects.create(:user => @u1, :write => false)
|
||||
@p1.users_projects.create(:user => @u2, :write => true)
|
||||
@p2.users_projects.create(:user => @u3, :write => true)
|
||||
end
|
||||
|
||||
it { @abilities.allowed?(@u1, :write_note, @p1).should be_false }
|
||||
|
@ -48,11 +48,11 @@ describe Note do
|
|||
it { @abilities.allowed?(@u3, :write_note, @p1).should be_false }
|
||||
end
|
||||
|
||||
describe :admin do
|
||||
before do
|
||||
@p1.users_projects.create(:user => @u1, :admin => false)
|
||||
@p1.users_projects.create(:user => @u2, :admin => true)
|
||||
@p2.users_projects.create(:user => @u3, :admin => true)
|
||||
describe :admin do
|
||||
before do
|
||||
@p1.users_projects.create(:user => @u1, :admin => false)
|
||||
@p1.users_projects.create(:user => @u2, :admin => true)
|
||||
@p2.users_projects.create(:user => @u3, :admin => true)
|
||||
end
|
||||
|
||||
it { @abilities.allowed?(@u1, :admin_note, @p1).should be_false }
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Project do
|
||||
describe :authorization do
|
||||
before do
|
||||
describe :authorization do
|
||||
before do
|
||||
@p1 = Factory :project
|
||||
@u1 = Factory :user
|
||||
@u2 = Factory :user
|
||||
|
@ -10,30 +10,30 @@ describe Project do
|
|||
@abilities << Ability
|
||||
end
|
||||
|
||||
describe :read do
|
||||
before do
|
||||
@p1.users_projects.create(:project => @p1, :user => @u1, :read => false)
|
||||
@p1.users_projects.create(:project => @p1, :user => @u2, :read => true)
|
||||
describe :read do
|
||||
before do
|
||||
@p1.users_projects.create(:project => @p1, :user => @u1, :read => false)
|
||||
@p1.users_projects.create(:project => @p1, :user => @u2, :read => true)
|
||||
end
|
||||
|
||||
it { @abilities.allowed?(@u1, :read_project, @p1).should be_false }
|
||||
it { @abilities.allowed?(@u2, :read_project, @p1).should be_true }
|
||||
end
|
||||
|
||||
describe :write do
|
||||
before do
|
||||
@p1.users_projects.create(:project => @p1, :user => @u1, :write => false)
|
||||
@p1.users_projects.create(:project => @p1, :user => @u2, :write => true)
|
||||
describe :write do
|
||||
before do
|
||||
@p1.users_projects.create(:project => @p1, :user => @u1, :write => false)
|
||||
@p1.users_projects.create(:project => @p1, :user => @u2, :write => true)
|
||||
end
|
||||
|
||||
it { @abilities.allowed?(@u1, :write_project, @p1).should be_false }
|
||||
it { @abilities.allowed?(@u2, :write_project, @p1).should be_true }
|
||||
end
|
||||
|
||||
describe :admin do
|
||||
before do
|
||||
@p1.users_projects.create(:project => @p1, :user => @u1, :admin => false)
|
||||
@p1.users_projects.create(:project => @p1, :user => @u2, :admin => true)
|
||||
describe :admin do
|
||||
before do
|
||||
@p1.users_projects.create(:project => @p1, :user => @u1, :admin => false)
|
||||
@p1.users_projects.create(:project => @p1, :user => @u2, :admin => true)
|
||||
end
|
||||
|
||||
it { @abilities.allowed?(@u1, :admin_project, @p1).should be_false }
|
||||
|
|
|
@ -40,20 +40,20 @@ describe Project do
|
|||
should_not allow_value("gitosis-admin").for(:path)
|
||||
end
|
||||
|
||||
it "should return valid url to repo" do
|
||||
it "should return valid url to repo" do
|
||||
project = Project.new(:path => "somewhere")
|
||||
project.url_to_repo.should == "git@localhost:somewhere.git"
|
||||
end
|
||||
|
||||
it "should return path to repo" do
|
||||
it "should return path to repo" do
|
||||
project = Project.new(:path => "somewhere")
|
||||
project.path_to_repo.should == File.join(Rails.root, "tmp", "tests", "somewhere")
|
||||
end
|
||||
|
||||
describe :valid_repo? do
|
||||
it "should be valid repo" do
|
||||
describe :valid_repo? do
|
||||
it "should be valid repo" do
|
||||
project = Factory :project
|
||||
project.valid_repo?.should be_true
|
||||
project.valid_repo?.should be_true
|
||||
end
|
||||
|
||||
it "should be invalid repo" do
|
||||
|
@ -62,43 +62,43 @@ describe Project do
|
|||
end
|
||||
end
|
||||
|
||||
describe "Git methods" do
|
||||
describe "Git methods" do
|
||||
let(:project) { Factory :project }
|
||||
|
||||
describe :repo do
|
||||
it "should return valid repo" do
|
||||
describe :repo do
|
||||
it "should return valid repo" do
|
||||
project.repo.should be_kind_of(Grit::Repo)
|
||||
end
|
||||
|
||||
it "should return nil" do
|
||||
it "should return nil" do
|
||||
lambda { Project.new(:path => "invalid").repo }.should raise_error(Grit::NoSuchPathError)
|
||||
end
|
||||
|
||||
it "should return nil" do
|
||||
it "should return nil" do
|
||||
lambda { Project.new.repo }.should raise_error(TypeError)
|
||||
end
|
||||
end
|
||||
|
||||
describe :commit do
|
||||
it "should return first head commit if without params" do
|
||||
describe :commit do
|
||||
it "should return first head commit if without params" do
|
||||
project.commit.id.should == project.repo.commits.first.id
|
||||
end
|
||||
|
||||
it "should return valid commit" do
|
||||
it "should return valid commit" do
|
||||
project.commit(ValidCommit::ID).should be_valid_commit
|
||||
end
|
||||
|
||||
it "should return nil" do
|
||||
it "should return nil" do
|
||||
project.commit("+123_4532530XYZ").should be_nil
|
||||
end
|
||||
end
|
||||
|
||||
describe :tree do
|
||||
before do
|
||||
describe :tree do
|
||||
before do
|
||||
@commit = project.commit(ValidCommit::ID)
|
||||
end
|
||||
|
||||
it "should raise error w/o arguments" do
|
||||
it "should raise error w/o arguments" do
|
||||
lambda { project.tree }.should raise_error
|
||||
end
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ describe User do
|
|||
it { should respond_to(:name) }
|
||||
end
|
||||
|
||||
it "should return valid identifier" do
|
||||
it "should return valid identifier" do
|
||||
user = User.new(:email => "test@mail.com")
|
||||
user.identifier.should == "test_mail.com"
|
||||
end
|
||||
|
|
|
@ -11,7 +11,7 @@ describe UsersProject do
|
|||
it { should validate_presence_of(:project_id) }
|
||||
end
|
||||
|
||||
describe "Delegate methods" do
|
||||
describe "Delegate methods" do
|
||||
it { should respond_to(:user_name) }
|
||||
it { should respond_to(:user_email) }
|
||||
end
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Stubbing Project <-> gitosis path
|
||||
# create project using Factory only
|
||||
class Project
|
||||
class Project
|
||||
def update_gitosis_project
|
||||
true
|
||||
end
|
||||
|
@ -9,12 +9,12 @@ class Project
|
|||
true
|
||||
end
|
||||
|
||||
def path_to_repo
|
||||
def path_to_repo
|
||||
File.join(Rails.root, "tmp", "tests", path)
|
||||
end
|
||||
end
|
||||
|
||||
class Key
|
||||
class Key
|
||||
def update_gitosis
|
||||
true
|
||||
end
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe "Admin::Projects" do
|
||||
before do
|
||||
before do
|
||||
@project = Factory :project,
|
||||
:name => "LeGiT",
|
||||
:code => "LGT"
|
||||
|
@ -9,7 +9,7 @@ describe "Admin::Projects" do
|
|||
end
|
||||
|
||||
describe "GET /admin/projects" do
|
||||
before do
|
||||
before do
|
||||
visit admin_projects_path
|
||||
end
|
||||
|
||||
|
@ -17,49 +17,49 @@ describe "Admin::Projects" do
|
|||
current_path.should == admin_projects_path
|
||||
end
|
||||
|
||||
it "should have projects list" do
|
||||
it "should have projects list" do
|
||||
page.should have_content(@project.code)
|
||||
page.should have_content(@project.name)
|
||||
end
|
||||
end
|
||||
|
||||
describe "GET /admin/projects/:id" do
|
||||
before do
|
||||
describe "GET /admin/projects/:id" do
|
||||
before do
|
||||
visit admin_projects_path
|
||||
click_link "Show"
|
||||
end
|
||||
|
||||
it "should have project info" do
|
||||
it "should have project info" do
|
||||
page.should have_content(@project.code)
|
||||
page.should have_content(@project.name)
|
||||
end
|
||||
end
|
||||
|
||||
describe "GET /admin/projects/:id/edit" do
|
||||
before do
|
||||
describe "GET /admin/projects/:id/edit" do
|
||||
before do
|
||||
visit admin_projects_path
|
||||
click_link "edit_project_#{@project.id}"
|
||||
end
|
||||
|
||||
it "should have project edit page" do
|
||||
it "should have project edit page" do
|
||||
page.should have_content("Name")
|
||||
page.should have_content("Code")
|
||||
end
|
||||
|
||||
describe "Update project" do
|
||||
before do
|
||||
before do
|
||||
fill_in "project_name", :with => "Big Bang"
|
||||
fill_in "project_code", :with => "BB1"
|
||||
click_button "Save"
|
||||
@project.reload
|
||||
end
|
||||
|
||||
it "should show page with new data" do
|
||||
it "should show page with new data" do
|
||||
page.should have_content("BB1")
|
||||
page.should have_content("Big Bang")
|
||||
end
|
||||
|
||||
it "should change project entry" do
|
||||
it "should change project entry" do
|
||||
@project.name.should == "Big Bang"
|
||||
@project.code.should == "BB1"
|
||||
end
|
||||
|
@ -67,24 +67,24 @@ describe "Admin::Projects" do
|
|||
end
|
||||
|
||||
describe "GET /admin/projects/new" do
|
||||
before do
|
||||
before do
|
||||
visit admin_projects_path
|
||||
click_link "New Project"
|
||||
end
|
||||
|
||||
it "should be correct path" do
|
||||
current_path.should == new_admin_project_path
|
||||
current_path.should == new_admin_project_path
|
||||
end
|
||||
|
||||
it "should have labels for new project" do
|
||||
page.should have_content("Name")
|
||||
page.should have_content("Path")
|
||||
page.should have_content("Description")
|
||||
page.should have_content("Name")
|
||||
page.should have_content("Path")
|
||||
page.should have_content("Description")
|
||||
end
|
||||
end
|
||||
|
||||
describe "POST /admin/projects" do
|
||||
before do
|
||||
before do
|
||||
visit new_admin_project_path
|
||||
fill_in 'Name', :with => 'NewProject'
|
||||
fill_in 'Code', :with => 'NPR'
|
||||
|
|
|
@ -4,7 +4,7 @@ describe "Admin::Users" do
|
|||
before { login_as :admin }
|
||||
|
||||
describe "GET /admin/users" do
|
||||
before do
|
||||
before do
|
||||
visit admin_users_path
|
||||
end
|
||||
|
||||
|
@ -12,14 +12,14 @@ describe "Admin::Users" do
|
|||
current_path.should == admin_users_path
|
||||
end
|
||||
|
||||
it "should have users list" do
|
||||
it "should have users list" do
|
||||
page.should have_content(@user.email)
|
||||
page.should have_content(@user.name)
|
||||
end
|
||||
end
|
||||
|
||||
describe "GET /admin/users/new" do
|
||||
before do
|
||||
describe "GET /admin/users/new" do
|
||||
before do
|
||||
@password = "123ABC"
|
||||
visit new_admin_user_path
|
||||
fill_in "user_name", :with => "Big Bang"
|
||||
|
@ -28,23 +28,23 @@ describe "Admin::Users" do
|
|||
fill_in "user_password_confirmation", :with => @password
|
||||
end
|
||||
|
||||
it "should create new user" do
|
||||
it "should create new user" do
|
||||
expect { click_button "Save" }.to change {User.count}.by(1)
|
||||
end
|
||||
|
||||
it "should create user with valid data" do
|
||||
it "should create user with valid data" do
|
||||
click_button "Save"
|
||||
user = User.last
|
||||
user.name.should == "Big Bang"
|
||||
user.email.should == "bigbang@mail.com"
|
||||
end
|
||||
|
||||
it "should call send mail" do
|
||||
it "should call send mail" do
|
||||
Notify.should_receive(:new_user_email).and_return(stub(:deliver => true))
|
||||
click_button "Save"
|
||||
end
|
||||
|
||||
it "should send valid email to user with email & password" do
|
||||
it "should send valid email to user with email & password" do
|
||||
click_button "Save"
|
||||
user = User.last
|
||||
email = ActionMailer::Base.deliveries.last
|
||||
|
@ -54,45 +54,45 @@ describe "Admin::Users" do
|
|||
end
|
||||
end
|
||||
|
||||
describe "GET /admin/users/:id" do
|
||||
before do
|
||||
describe "GET /admin/users/:id" do
|
||||
before do
|
||||
visit admin_users_path
|
||||
click_link "Show"
|
||||
end
|
||||
|
||||
it "should have user info" do
|
||||
it "should have user info" do
|
||||
page.should have_content(@user.email)
|
||||
page.should have_content(@user.name)
|
||||
page.should have_content(@user.is_admin?)
|
||||
end
|
||||
end
|
||||
|
||||
describe "GET /admin/users/:id/edit" do
|
||||
before do
|
||||
describe "GET /admin/users/:id/edit" do
|
||||
before do
|
||||
@simple_user = Factory :user
|
||||
visit admin_users_path
|
||||
click_link "edit_user_#{@simple_user.id}"
|
||||
end
|
||||
|
||||
it "should have user edit page" do
|
||||
it "should have user edit page" do
|
||||
page.should have_content("Name")
|
||||
page.should have_content("Password")
|
||||
end
|
||||
|
||||
describe "Update user" do
|
||||
before do
|
||||
before do
|
||||
fill_in "user_name", :with => "Big Bang"
|
||||
fill_in "user_email", :with => "bigbang@mail.com"
|
||||
check "user_admin"
|
||||
click_button "Save"
|
||||
end
|
||||
|
||||
it "should show page with new data" do
|
||||
it "should show page with new data" do
|
||||
page.should have_content("bigbang@mail.com")
|
||||
page.should have_content("Big Bang")
|
||||
end
|
||||
|
||||
it "should change user entry" do
|
||||
it "should change user entry" do
|
||||
@simple_user.reload
|
||||
@simple_user.name.should == "Big Bang"
|
||||
@simple_user.is_admin?.should be_true
|
||||
|
|
|
@ -1,25 +1,25 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe "Admin::Projects" do
|
||||
describe "GET /admin/projects" do
|
||||
describe "GET /admin/projects" do
|
||||
it { admin_projects_path.should be_allowed_for :admin }
|
||||
it { admin_projects_path.should be_denied_for :user }
|
||||
it { admin_projects_path.should be_denied_for :visitor }
|
||||
end
|
||||
|
||||
describe "GET /admin/users" do
|
||||
describe "GET /admin/users" do
|
||||
it { admin_users_path.should be_allowed_for :admin }
|
||||
it { admin_users_path.should be_denied_for :user }
|
||||
it { admin_users_path.should be_denied_for :visitor }
|
||||
end
|
||||
|
||||
describe "GET /admin/team_members" do
|
||||
describe "GET /admin/team_members" do
|
||||
it { admin_team_members_path.should be_allowed_for :admin }
|
||||
it { admin_team_members_path.should be_denied_for :user }
|
||||
it { admin_team_members_path.should be_denied_for :visitor }
|
||||
end
|
||||
|
||||
describe "GET /admin/emails" do
|
||||
describe "GET /admin/emails" do
|
||||
it { admin_emails_path.should be_allowed_for :admin }
|
||||
it { admin_emails_path.should be_denied_for :user }
|
||||
it { admin_emails_path.should be_denied_for :visitor }
|
||||
|
|
|
@ -4,13 +4,13 @@ describe "Issues" do
|
|||
let(:project) { Factory :project }
|
||||
let!(:commit) { project.repo.commits.first }
|
||||
|
||||
before do
|
||||
before do
|
||||
login_as :user
|
||||
project.add_access(@user, :read, :write)
|
||||
end
|
||||
|
||||
describe "add new note", :js => true do
|
||||
before do
|
||||
describe "add new note", :js => true do
|
||||
before do
|
||||
visit project_commit_path(project, commit)
|
||||
click_link "Comments" # notes tab
|
||||
fill_in "note_note", :with => "I commented this commit"
|
||||
|
|
|
@ -3,13 +3,13 @@ require 'spec_helper'
|
|||
describe "Commits" do
|
||||
let(:project) { Factory :project }
|
||||
let!(:commit) { project.repo.commits.first }
|
||||
before do
|
||||
before do
|
||||
login_as :user
|
||||
project.add_access(@user, :read)
|
||||
end
|
||||
|
||||
describe "GET /commits" do
|
||||
before do
|
||||
before do
|
||||
visit project_commits_path(project)
|
||||
end
|
||||
|
||||
|
@ -17,22 +17,22 @@ describe "Commits" do
|
|||
current_path.should == project_commits_path(project)
|
||||
end
|
||||
|
||||
it "should have project name" do
|
||||
it "should have project name" do
|
||||
page.should have_content(project.name)
|
||||
end
|
||||
|
||||
it "should list commits" do
|
||||
it "should list commits" do
|
||||
page.should have_content(commit.author)
|
||||
page.should have_content(commit.message)
|
||||
end
|
||||
end
|
||||
|
||||
describe "GET /commits/:id" do
|
||||
before do
|
||||
describe "GET /commits/:id" do
|
||||
before do
|
||||
visit project_commit_path(project, commit)
|
||||
end
|
||||
|
||||
it "should have valid path" do
|
||||
it "should have valid path" do
|
||||
current_path.should == project_commit_path(project, commit)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,7 +3,7 @@ require 'spec_helper'
|
|||
describe "Issues" do
|
||||
let(:project) { Factory :project }
|
||||
|
||||
before do
|
||||
before do
|
||||
login_as :user
|
||||
project.add_access(@user, :read, :write)
|
||||
|
||||
|
@ -13,8 +13,8 @@ describe "Issues" do
|
|||
:project => project
|
||||
end
|
||||
|
||||
describe "add new note", :js => true do
|
||||
before do
|
||||
describe "add new note", :js => true do
|
||||
before do
|
||||
visit project_issue_path(project, @issue)
|
||||
fill_in "note_note", :with => "I commented this issue"
|
||||
click_button "Add note"
|
||||
|
|
|
@ -3,13 +3,13 @@ require 'spec_helper'
|
|||
describe "Issues" do
|
||||
let(:project) { Factory :project }
|
||||
|
||||
before do
|
||||
before do
|
||||
login_as :user
|
||||
project.add_access(@user, :read, :write)
|
||||
end
|
||||
|
||||
describe "GET /issues" do
|
||||
before do
|
||||
before do
|
||||
@issue = Factory :issue,
|
||||
:author => @user,
|
||||
:assignee => @user,
|
||||
|
@ -24,23 +24,23 @@ describe "Issues" do
|
|||
it { should have_content(@issue.project.name) }
|
||||
it { should have_content(@issue.assignee.name) }
|
||||
|
||||
describe "Destroy" do
|
||||
before do
|
||||
describe "Destroy" do
|
||||
before do
|
||||
# admin access to remove issue
|
||||
@user.users_projects.destroy_all
|
||||
project.add_access(@user, :read, :write, :admin)
|
||||
visit project_issues_path(project)
|
||||
end
|
||||
|
||||
it "should remove entry" do
|
||||
it "should remove entry" do
|
||||
expect {
|
||||
click_link "destroy_issue_#{@issue.id}"
|
||||
}.to change { Issue.count }.by(-1)
|
||||
end
|
||||
end
|
||||
|
||||
describe "statuses", :js => true do
|
||||
before do
|
||||
describe "statuses", :js => true do
|
||||
before do
|
||||
@closed_issue = Factory :issue,
|
||||
:author => @user,
|
||||
:assignee => @user,
|
||||
|
@ -48,18 +48,18 @@ describe "Issues" do
|
|||
:closed => true
|
||||
end
|
||||
|
||||
it "should show only open" do
|
||||
it "should show only open" do
|
||||
should have_content(@issue.title)
|
||||
should have_no_content(@closed_issue.title)
|
||||
end
|
||||
|
||||
it "should show only closed" do
|
||||
it "should show only closed" do
|
||||
choose "closed_issues"
|
||||
should have_no_content(@issue.title)
|
||||
should have_content(@closed_issue.title)
|
||||
end
|
||||
|
||||
it "should show all" do
|
||||
it "should show all" do
|
||||
choose "all_issues"
|
||||
should have_content(@issue.title)
|
||||
should have_content(@closed_issue.title)
|
||||
|
@ -67,17 +67,17 @@ describe "Issues" do
|
|||
end
|
||||
end
|
||||
|
||||
describe "New issue", :js => true do
|
||||
before do
|
||||
describe "New issue", :js => true do
|
||||
before do
|
||||
visit project_issues_path(project)
|
||||
click_link "New Issue"
|
||||
end
|
||||
|
||||
it "should open new issue popup" do
|
||||
it "should open new issue popup" do
|
||||
page.should have_content("Add new issue")
|
||||
end
|
||||
|
||||
describe "fill in" do
|
||||
describe "fill in" do
|
||||
before do
|
||||
fill_in "issue_title", :with => "bug 345"
|
||||
fill_in "issue_content", :with => "app bug 345"
|
||||
|
@ -87,7 +87,7 @@ describe "Issues" do
|
|||
|
||||
it { expect { click_button "Save" }.to change {Issue.count}.by(1) }
|
||||
|
||||
it "should add new issue to table" do
|
||||
it "should add new issue to table" do
|
||||
click_button "Save"
|
||||
|
||||
page.should_not have_content("Add new issue")
|
||||
|
@ -96,12 +96,12 @@ describe "Issues" do
|
|||
page.should have_content project.name
|
||||
end
|
||||
|
||||
it "should call send mail" do
|
||||
it "should call send mail" do
|
||||
Notify.should_receive(:new_issue_email).and_return(stub(:deliver => true))
|
||||
click_button "Save"
|
||||
end
|
||||
|
||||
it "should send valid email to user with email & password" do
|
||||
it "should send valid email to user with email & password" do
|
||||
click_button "Save"
|
||||
issue = Issue.last
|
||||
email = ActionMailer::Base.deliveries.last
|
||||
|
@ -112,8 +112,8 @@ describe "Issues" do
|
|||
end
|
||||
end
|
||||
|
||||
describe "Edit issue", :js => true do
|
||||
before do
|
||||
describe "Edit issue", :js => true do
|
||||
before do
|
||||
@issue = Factory :issue,
|
||||
:author => @user,
|
||||
:assignee => @user,
|
||||
|
@ -122,11 +122,11 @@ describe "Issues" do
|
|||
click_link "Edit"
|
||||
end
|
||||
|
||||
it "should open new issue popup" do
|
||||
it "should open new issue popup" do
|
||||
page.should have_content("Issue ##{@issue.id}")
|
||||
end
|
||||
|
||||
describe "fill in" do
|
||||
describe "fill in" do
|
||||
before do
|
||||
fill_in "issue_title", :with => "bug 345"
|
||||
fill_in "issue_content", :with => "app bug 345"
|
||||
|
@ -134,7 +134,7 @@ describe "Issues" do
|
|||
|
||||
it { expect { click_button "Save" }.to_not change {Issue.count} }
|
||||
|
||||
it "should update issue fields" do
|
||||
it "should update issue fields" do
|
||||
click_button "Save"
|
||||
|
||||
page.should_not have_content("Issue ##{@issue.id}")
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe "Issues" do
|
||||
before do
|
||||
before do
|
||||
login_as :user
|
||||
end
|
||||
|
||||
describe "GET /keys" do
|
||||
before do
|
||||
before do
|
||||
@key = Factory :key, :user => @user
|
||||
visit keys_path
|
||||
end
|
||||
|
@ -15,8 +15,8 @@ describe "Issues" do
|
|||
|
||||
it { should have_content(@key.title) }
|
||||
|
||||
describe "Destroy" do
|
||||
it "should remove entry" do
|
||||
describe "Destroy" do
|
||||
it "should remove entry" do
|
||||
expect {
|
||||
click_link "destroy_key_#{@key.id}"
|
||||
}.to change { @user.keys.count }.by(-1)
|
||||
|
@ -24,17 +24,17 @@ describe "Issues" do
|
|||
end
|
||||
end
|
||||
|
||||
describe "New key", :js => true do
|
||||
before do
|
||||
describe "New key", :js => true do
|
||||
before do
|
||||
visit keys_path
|
||||
click_link "Add new"
|
||||
end
|
||||
|
||||
it "should open new key popup" do
|
||||
it "should open new key popup" do
|
||||
page.should have_content("Add new public key")
|
||||
end
|
||||
|
||||
describe "fill in" do
|
||||
describe "fill in" do
|
||||
before do
|
||||
fill_in "key_title", :with => "laptop"
|
||||
fill_in "key_key", :with => "publickey234="
|
||||
|
@ -42,7 +42,7 @@ describe "Issues" do
|
|||
|
||||
it { expect { click_button "Save" }.to change {Key.count}.by(1) }
|
||||
|
||||
it "should add new key to table" do
|
||||
it "should add new key to table" do
|
||||
click_button "Save"
|
||||
|
||||
page.should_not have_content("Add new public key")
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe "Profile" do
|
||||
before do
|
||||
before do
|
||||
login_as :user
|
||||
end
|
||||
|
||||
describe "Show profile" do
|
||||
before do
|
||||
before do
|
||||
visit profile_path
|
||||
end
|
||||
|
||||
|
@ -15,13 +15,13 @@ describe "Profile" do
|
|||
end
|
||||
|
||||
describe "Profile update" do
|
||||
before do
|
||||
before do
|
||||
visit profile_path
|
||||
fill_in "user_skype", :with => "testskype"
|
||||
fill_in "user_linkedin", :with => "testlinkedin"
|
||||
fill_in "user_linkedin", :with => "testlinkedin"
|
||||
fill_in "user_twitter", :with => "testtwitter"
|
||||
click_button "Save"
|
||||
@user.reload
|
||||
@user.reload
|
||||
end
|
||||
|
||||
it { @user.skype.should == 'testskype' }
|
||||
|
@ -29,18 +29,17 @@ describe "Profile" do
|
|||
it { @user.twitter.should == 'testtwitter' }
|
||||
end
|
||||
|
||||
|
||||
describe "Password update" do
|
||||
before do
|
||||
before do
|
||||
visit profile_password_path
|
||||
end
|
||||
|
||||
it { page.should have_content("Password") }
|
||||
it { page.should have_content("Password confirmation") }
|
||||
|
||||
describe "change password" do
|
||||
before do
|
||||
@old_pwd = @user.encrypted_password
|
||||
describe "change password" do
|
||||
before do
|
||||
@old_pwd = @user.encrypted_password
|
||||
fill_in "user_password", :with => "777777"
|
||||
fill_in "user_password_confirmation", :with => "777777"
|
||||
click_button "Save"
|
||||
|
@ -51,18 +50,18 @@ describe "Profile" do
|
|||
current_path.should == new_user_session_path
|
||||
end
|
||||
|
||||
it "should change password" do
|
||||
it "should change password" do
|
||||
@user.encrypted_password.should_not == @old_pwd
|
||||
end
|
||||
|
||||
describe "login with new password" do
|
||||
describe "login with new password" do
|
||||
before do
|
||||
fill_in "user_email", :with => @user.email
|
||||
fill_in "user_password", :with => "777777"
|
||||
click_button "Sign in"
|
||||
end
|
||||
|
||||
it "should login user" do
|
||||
|
||||
it "should login user" do
|
||||
current_path.should == root_path
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,33 +1,33 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe "Projects" do
|
||||
describe "GET /projects" do
|
||||
describe "GET /projects" do
|
||||
it { projects_path.should be_allowed_for :admin }
|
||||
it { projects_path.should be_allowed_for :user }
|
||||
it { projects_path.should be_denied_for :visitor }
|
||||
end
|
||||
|
||||
describe "GET /projects/new" do
|
||||
describe "GET /projects/new" do
|
||||
it { projects_path.should be_allowed_for :admin }
|
||||
it { projects_path.should be_allowed_for :user }
|
||||
it { projects_path.should be_denied_for :visitor }
|
||||
end
|
||||
|
||||
describe "Project" do
|
||||
before do
|
||||
before do
|
||||
@project = Factory :project
|
||||
@u1 = Factory :user
|
||||
@u2 = Factory :user
|
||||
@u3 = Factory :user
|
||||
# full access
|
||||
@project.users_projects.create(:user => @u1, :read => true, :write => true, :admin => true)
|
||||
@project.users_projects.create(:user => @u1, :read => true, :write => true, :admin => true)
|
||||
# no access
|
||||
@project.users_projects.create(:user => @u2, :read => false, :write => false, :admin => false)
|
||||
@project.users_projects.create(:user => @u2, :read => false, :write => false, :admin => false)
|
||||
# readonly
|
||||
@project.users_projects.create(:user => @u3, :read => true, :write => false, :admin => false)
|
||||
@project.users_projects.create(:user => @u3, :read => true, :write => false, :admin => false)
|
||||
end
|
||||
|
||||
describe "GET /project_code" do
|
||||
describe "GET /project_code" do
|
||||
it { project_path(@project).should be_allowed_for @u1 }
|
||||
it { project_path(@project).should be_allowed_for @u3 }
|
||||
it { project_path(@project).should be_denied_for :admin }
|
||||
|
@ -36,7 +36,7 @@ describe "Projects" do
|
|||
it { project_path(@project).should be_denied_for :visitor }
|
||||
end
|
||||
|
||||
describe "GET /project_code/tree" do
|
||||
describe "GET /project_code/tree" do
|
||||
it { tree_project_path(@project).should be_allowed_for @u1 }
|
||||
it { tree_project_path(@project).should be_allowed_for @u3 }
|
||||
it { tree_project_path(@project).should be_denied_for :admin }
|
||||
|
@ -45,7 +45,7 @@ describe "Projects" do
|
|||
it { tree_project_path(@project).should be_denied_for :visitor }
|
||||
end
|
||||
|
||||
describe "GET /project_code/commits" do
|
||||
describe "GET /project_code/commits" do
|
||||
it { project_commits_path(@project).should be_allowed_for @u1 }
|
||||
it { project_commits_path(@project).should be_allowed_for @u3 }
|
||||
it { project_commits_path(@project).should be_denied_for :admin }
|
||||
|
@ -54,7 +54,7 @@ describe "Projects" do
|
|||
it { project_commits_path(@project).should be_denied_for :visitor }
|
||||
end
|
||||
|
||||
describe "GET /project_code/commit" do
|
||||
describe "GET /project_code/commit" do
|
||||
it { project_commit_path(@project, @project.commit).should be_allowed_for @u1 }
|
||||
it { project_commit_path(@project, @project.commit).should be_allowed_for @u3 }
|
||||
it { project_commit_path(@project, @project.commit).should be_denied_for :admin }
|
||||
|
@ -63,7 +63,7 @@ describe "Projects" do
|
|||
it { project_commit_path(@project, @project.commit).should be_denied_for :visitor }
|
||||
end
|
||||
|
||||
describe "GET /project_code/team" do
|
||||
describe "GET /project_code/team" do
|
||||
it { team_project_path(@project).should be_allowed_for @u1 }
|
||||
it { team_project_path(@project).should be_allowed_for @u3 }
|
||||
it { team_project_path(@project).should be_denied_for :admin }
|
||||
|
@ -72,7 +72,7 @@ describe "Projects" do
|
|||
it { team_project_path(@project).should be_denied_for :visitor }
|
||||
end
|
||||
|
||||
describe "GET /project_code/wall" do
|
||||
describe "GET /project_code/wall" do
|
||||
it { wall_project_path(@project).should be_allowed_for @u1 }
|
||||
it { wall_project_path(@project).should be_allowed_for @u3 }
|
||||
it { wall_project_path(@project).should be_denied_for :admin }
|
||||
|
@ -81,8 +81,8 @@ describe "Projects" do
|
|||
it { wall_project_path(@project).should be_denied_for :visitor }
|
||||
end
|
||||
|
||||
describe "GET /project_code/blob" do
|
||||
before do
|
||||
describe "GET /project_code/blob" do
|
||||
before do
|
||||
@commit = @project.commit
|
||||
@path = @commit.tree.contents.select { |i| i.is_a?(Grit::Blob)}.first.name
|
||||
@blob_path = blob_project_path(@project, :commit_id => @commit.id, :path => @path)
|
||||
|
@ -96,7 +96,7 @@ describe "Projects" do
|
|||
it { @blob_path.should be_denied_for :visitor }
|
||||
end
|
||||
|
||||
describe "GET /project_code/edit" do
|
||||
describe "GET /project_code/edit" do
|
||||
it { edit_project_path(@project).should be_allowed_for @u1 }
|
||||
it { edit_project_path(@project).should be_denied_for @u3 }
|
||||
it { edit_project_path(@project).should be_denied_for :admin }
|
||||
|
@ -105,7 +105,7 @@ describe "Projects" do
|
|||
it { edit_project_path(@project).should be_denied_for :visitor }
|
||||
end
|
||||
|
||||
describe "GET /project_code/issues" do
|
||||
describe "GET /project_code/issues" do
|
||||
it { project_issues_path(@project).should be_allowed_for @u1 }
|
||||
it { project_issues_path(@project).should be_allowed_for @u3 }
|
||||
it { project_issues_path(@project).should be_denied_for :admin }
|
||||
|
@ -114,7 +114,7 @@ describe "Projects" do
|
|||
it { project_issues_path(@project).should be_denied_for :visitor }
|
||||
end
|
||||
|
||||
describe "GET /project_code/snippets" do
|
||||
describe "GET /project_code/snippets" do
|
||||
it { project_snippets_path(@project).should be_allowed_for @u1 }
|
||||
it { project_snippets_path(@project).should be_allowed_for @u3 }
|
||||
it { project_snippets_path(@project).should be_denied_for :admin }
|
||||
|
|
|
@ -4,38 +4,38 @@ describe "Projects" do
|
|||
before { login_as :user }
|
||||
|
||||
describe "GET /projects" do
|
||||
before do
|
||||
before do
|
||||
visit projects_path
|
||||
end
|
||||
|
||||
it "should be on projects page" do
|
||||
current_path.should == projects_path
|
||||
current_path.should == projects_path
|
||||
end
|
||||
|
||||
it "should have link to new project" do
|
||||
page.should have_content("New Project")
|
||||
page.should have_content("New Project")
|
||||
end
|
||||
end
|
||||
|
||||
describe "GET /projects/new" do
|
||||
before do
|
||||
before do
|
||||
visit projects_path
|
||||
click_link "New Project"
|
||||
end
|
||||
|
||||
it "should be correct path" do
|
||||
current_path.should == new_project_path
|
||||
current_path.should == new_project_path
|
||||
end
|
||||
|
||||
it "should have labels for new project" do
|
||||
page.should have_content("Name")
|
||||
page.should have_content("Path")
|
||||
page.should have_content("Description")
|
||||
page.should have_content("Name")
|
||||
page.should have_content("Path")
|
||||
page.should have_content("Description")
|
||||
end
|
||||
end
|
||||
|
||||
describe "POST /projects" do
|
||||
before do
|
||||
before do
|
||||
visit new_project_path
|
||||
fill_in 'Name', :with => 'NewProject'
|
||||
fill_in 'Code', :with => 'NPR'
|
||||
|
@ -61,7 +61,7 @@ describe "Projects" do
|
|||
end
|
||||
|
||||
describe "GET /projects/show" do
|
||||
before do
|
||||
before do
|
||||
@project = Factory :project
|
||||
@project.add_access(@user, :read)
|
||||
|
||||
|
@ -72,14 +72,14 @@ describe "Projects" do
|
|||
current_path.should == project_path(@project)
|
||||
end
|
||||
|
||||
it "should beahave like dashboard" do
|
||||
it "should beahave like dashboard" do
|
||||
page.should have_content("History")
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe "GET /projects/team" do
|
||||
before do
|
||||
before do
|
||||
@project = Factory :project
|
||||
@project.add_access(@user, :read)
|
||||
|
||||
|
@ -92,13 +92,13 @@ describe "Projects" do
|
|||
current_path.should == team_project_path(@project)
|
||||
end
|
||||
|
||||
it "should have as as team member" do
|
||||
it "should have as as team member" do
|
||||
page.should have_content(@user.name)
|
||||
end
|
||||
end
|
||||
|
||||
describe "GET /projects/:id/edit" do
|
||||
before do
|
||||
before do
|
||||
@project = Factory :project
|
||||
@project.add_access(@user, :admin, :read)
|
||||
|
||||
|
@ -110,14 +110,14 @@ describe "Projects" do
|
|||
end
|
||||
|
||||
it "should have labels for new project" do
|
||||
page.should have_content("Name")
|
||||
page.should have_content("Path")
|
||||
page.should have_content("Description")
|
||||
page.should have_content("Name")
|
||||
page.should have_content("Path")
|
||||
page.should have_content("Description")
|
||||
end
|
||||
end
|
||||
|
||||
describe "PUT /projects/:id" do
|
||||
before do
|
||||
before do
|
||||
@project = Factory :project
|
||||
@project.add_access(@user, :admin, :read)
|
||||
|
||||
|
@ -140,14 +140,14 @@ describe "Projects" do
|
|||
end
|
||||
|
||||
#describe "DELETE /projects/:id", :js => true do
|
||||
#before do
|
||||
#before do
|
||||
#@project = Factory :project
|
||||
#@project.add_access(@user, :read, :admin)
|
||||
#visit projects_path
|
||||
#end
|
||||
|
||||
#it "should be correct path" do
|
||||
#expect { click_link "Destroy" }.to change {Project.count}.by(1)
|
||||
#expect { click_link "Destroy" }.to change {Project.count}.by(1)
|
||||
#end
|
||||
#end
|
||||
end
|
||||
|
|
|
@ -6,13 +6,13 @@ describe "Projects" do
|
|||
|
||||
describe "GET /projects/tree" do
|
||||
describe "head" do
|
||||
before do
|
||||
before do
|
||||
@project = Factory :project
|
||||
@project.add_access(@user, :read)
|
||||
|
||||
end
|
||||
|
||||
it "should be fast" do
|
||||
it "should be fast" do
|
||||
time = Benchmark.realtime do
|
||||
visit tree_project_path(@project)
|
||||
end
|
||||
|
@ -21,12 +21,12 @@ describe "Projects" do
|
|||
end
|
||||
|
||||
describe ValidCommit::ID do
|
||||
before do
|
||||
before do
|
||||
@project = Factory :project
|
||||
@project.add_access(@user, :read)
|
||||
end
|
||||
|
||||
it "should be fast" do
|
||||
it "should be fast" do
|
||||
time = Benchmark.realtime do
|
||||
visit tree_project_path(@project, :commit_id => ValidCommit::ID)
|
||||
end
|
||||
|
|
|
@ -5,7 +5,7 @@ describe "Projects" do
|
|||
|
||||
describe "GET /projects/tree" do
|
||||
describe "head" do
|
||||
before do
|
||||
before do
|
||||
@project = Factory :project
|
||||
@project.add_access(@user, :read)
|
||||
|
||||
|
@ -20,7 +20,7 @@ describe "Projects" do
|
|||
end
|
||||
|
||||
describe ValidCommit::ID do
|
||||
before do
|
||||
before do
|
||||
@project = Factory :project
|
||||
@project.add_access(@user, :read)
|
||||
|
||||
|
@ -36,7 +36,7 @@ describe "Projects" do
|
|||
end
|
||||
|
||||
describe "branch passed" do
|
||||
before do
|
||||
before do
|
||||
@project = Factory :project
|
||||
@project.add_access(@user, :read)
|
||||
|
||||
|
@ -53,7 +53,7 @@ describe "Projects" do
|
|||
|
||||
# TREE FILE PREVIEW
|
||||
describe "file preview" do
|
||||
before do
|
||||
before do
|
||||
@project = Factory :project
|
||||
@project.add_access(@user, :read)
|
||||
|
||||
|
@ -70,9 +70,9 @@ describe "Projects" do
|
|||
end
|
||||
end
|
||||
|
||||
# RAW FILE
|
||||
# RAW FILE
|
||||
describe "GET /projects/blob" do
|
||||
before do
|
||||
before do
|
||||
@project = Factory :project
|
||||
@project.add_access(@user, :read)
|
||||
|
||||
|
@ -85,7 +85,7 @@ describe "Projects" do
|
|||
current_path.should == blob_project_path(@project)
|
||||
end
|
||||
|
||||
it "raw file response" do
|
||||
it "raw file response" do
|
||||
page.source.should == ValidCommit::BLOB_FILE
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,13 +3,13 @@ require 'spec_helper'
|
|||
describe "Projects", "Wall" do
|
||||
let(:project) { Factory :project }
|
||||
|
||||
before do
|
||||
before do
|
||||
login_as :user
|
||||
project.add_access(@user, :read, :write)
|
||||
end
|
||||
|
||||
describe "View notes on wall" do
|
||||
before do
|
||||
before do
|
||||
Factory :note, :project => project, :note => "Project specs", :author => @user
|
||||
visit wall_project_path(project)
|
||||
end
|
||||
|
@ -19,8 +19,8 @@ describe "Projects", "Wall" do
|
|||
it { page.should have_content("less than a minute ago") }
|
||||
end
|
||||
|
||||
describe "add new note", :js => true do
|
||||
before do
|
||||
describe "add new note", :js => true do
|
||||
before do
|
||||
visit wall_project_path(project)
|
||||
fill_in "note_note", :with => "my post on wall"
|
||||
click_button "Add note"
|
||||
|
|
|
@ -3,13 +3,13 @@ require 'spec_helper'
|
|||
describe "Snippets" do
|
||||
let(:project) { Factory :project }
|
||||
|
||||
before do
|
||||
before do
|
||||
login_as :user
|
||||
project.add_access(@user, :read, :write)
|
||||
end
|
||||
|
||||
describe "GET /snippets" do
|
||||
before do
|
||||
before do
|
||||
@snippet = Factory :snippet,
|
||||
:author => @user,
|
||||
:project => project
|
||||
|
@ -23,15 +23,15 @@ describe "Snippets" do
|
|||
it { should have_content(@snippet.project.name) }
|
||||
it { should have_content(@snippet.author.name) }
|
||||
|
||||
describe "Destroy" do
|
||||
before do
|
||||
describe "Destroy" do
|
||||
before do
|
||||
# admin access to remove snippet
|
||||
@user.users_projects.destroy_all
|
||||
project.add_access(@user, :read, :write, :admin)
|
||||
visit project_snippets_path(project)
|
||||
end
|
||||
|
||||
it "should remove entry" do
|
||||
it "should remove entry" do
|
||||
expect {
|
||||
click_link "destroy_snippet_#{@snippet.id}"
|
||||
}.to change { Snippet.count }.by(-1)
|
||||
|
@ -39,17 +39,17 @@ describe "Snippets" do
|
|||
end
|
||||
end
|
||||
|
||||
describe "New snippet" do
|
||||
before do
|
||||
describe "New snippet" do
|
||||
before do
|
||||
visit project_snippets_path(project)
|
||||
click_link "New Snippet"
|
||||
end
|
||||
|
||||
it "should open new snippet popup" do
|
||||
it "should open new snippet popup" do
|
||||
page.current_path.should == new_project_snippet_path(project)
|
||||
end
|
||||
|
||||
describe "fill in" do
|
||||
describe "fill in" do
|
||||
before do
|
||||
fill_in "snippet_title", :with => "login function"
|
||||
fill_in "snippet_file_name", :with => "test.rb"
|
||||
|
@ -58,7 +58,7 @@ describe "Snippets" do
|
|||
|
||||
it { expect { click_button "Save" }.to change {Snippet.count}.by(1) }
|
||||
|
||||
it "should add new snippet to table" do
|
||||
it "should add new snippet to table" do
|
||||
click_button "Save"
|
||||
page.current_path.should == project_snippet_path(project, Snippet.last)
|
||||
page.should have_content "login function"
|
||||
|
@ -67,8 +67,8 @@ describe "Snippets" do
|
|||
end
|
||||
end
|
||||
|
||||
describe "Edit snippet" do
|
||||
before do
|
||||
describe "Edit snippet" do
|
||||
before do
|
||||
@snippet = Factory :snippet,
|
||||
:author => @user,
|
||||
:project => project
|
||||
|
@ -76,11 +76,11 @@ describe "Snippets" do
|
|||
click_link "Edit"
|
||||
end
|
||||
|
||||
it "should open edit page" do
|
||||
it "should open edit page" do
|
||||
page.current_path.should == edit_project_snippet_path(project, @snippet)
|
||||
end
|
||||
|
||||
describe "fill in" do
|
||||
describe "fill in" do
|
||||
before do
|
||||
fill_in "snippet_title", :with => "login function"
|
||||
fill_in "snippet_file_name", :with => "test.rb"
|
||||
|
@ -89,7 +89,7 @@ describe "Snippets" do
|
|||
|
||||
it { expect { click_button "Save" }.to_not change {Snippet.count} }
|
||||
|
||||
it "should update snippet fields" do
|
||||
it "should update snippet fields" do
|
||||
click_button "Save"
|
||||
|
||||
page.current_path.should == project_snippet_path(project, @snippet)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe "TeamMembers" do
|
||||
before do
|
||||
before do
|
||||
login_as :user
|
||||
@project = Factory :project
|
||||
@project.add_access(@user, :read, :admin)
|
||||
|
@ -10,7 +10,7 @@ describe "TeamMembers" do
|
|||
describe "View profile" do
|
||||
it "should be available" do
|
||||
visit(team_project_path(@project))
|
||||
within "#team-table" do
|
||||
within "#team-table" do
|
||||
click_link(@user.name)
|
||||
end
|
||||
page.should have_content @user.skype
|
||||
|
@ -18,23 +18,23 @@ describe "TeamMembers" do
|
|||
end
|
||||
end
|
||||
|
||||
describe "New Team member", :js => true do
|
||||
before do
|
||||
describe "New Team member", :js => true do
|
||||
before do
|
||||
@user_1 = Factory :user
|
||||
visit team_project_path(@project)
|
||||
click_link "Add new"
|
||||
end
|
||||
|
||||
it "should open new team member popup" do
|
||||
it "should open new team member popup" do
|
||||
page.should have_content("Add new member to project")
|
||||
end
|
||||
|
||||
describe "fill in" do
|
||||
describe "fill in" do
|
||||
before do
|
||||
click_link "Select user"
|
||||
click_link @user_1.name
|
||||
|
||||
within "#team_member_new" do
|
||||
within "#team_member_new" do
|
||||
check "team_member_read"
|
||||
check "team_member_write"
|
||||
end
|
||||
|
@ -42,7 +42,7 @@ describe "TeamMembers" do
|
|||
|
||||
it { expect { click_button "Save";sleep(1) }.to change {UsersProject.count}.by(1) }
|
||||
|
||||
it "should add new member to table" do
|
||||
it "should add new member to table" do
|
||||
click_button "Save"
|
||||
@member = UsersProject.last
|
||||
|
||||
|
@ -53,8 +53,8 @@ describe "TeamMembers" do
|
|||
@member.admin.should be_false
|
||||
end
|
||||
|
||||
it "should not allow creation without access selected" do
|
||||
within "#team_member_new" do
|
||||
it "should not allow creation without access selected" do
|
||||
within "#team_member_new" do
|
||||
uncheck "team_member_read"
|
||||
uncheck "team_member_write"
|
||||
uncheck "team_member_admin"
|
||||
|
@ -66,8 +66,8 @@ describe "TeamMembers" do
|
|||
end
|
||||
end
|
||||
|
||||
describe "Cancel membership" do
|
||||
it "should cancel membership" do
|
||||
describe "Cancel membership" do
|
||||
it "should cancel membership" do
|
||||
visit team_project_path(@project)
|
||||
expect { click_link "Cancel" }.to change { UsersProject.count }.by(-1)
|
||||
end
|
||||
|
|
|
@ -4,7 +4,7 @@ describe "Top Panel", :js => true do
|
|||
before { login_as :user }
|
||||
|
||||
describe "Search autocomplete" do
|
||||
before do
|
||||
before do
|
||||
visit projects_path
|
||||
fill_in "search", :with => "Ke"
|
||||
sleep(2)
|
||||
|
@ -12,12 +12,12 @@ describe "Top Panel", :js => true do
|
|||
end
|
||||
|
||||
it "should be on projects page" do
|
||||
current_path.should == keys_path
|
||||
current_path.should == keys_path
|
||||
end
|
||||
end
|
||||
|
||||
describe "with project" do
|
||||
before do
|
||||
before do
|
||||
@project = Factory :project
|
||||
@project.add_access(@user, :read)
|
||||
visit project_path(@project)
|
||||
|
@ -28,7 +28,7 @@ describe "Top Panel", :js => true do
|
|||
end
|
||||
|
||||
it "should be on projects page" do
|
||||
current_path.should == project_commits_path(@project)
|
||||
current_path.should == project_commits_path(@project)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,32 +2,32 @@ require 'spec_helper'
|
|||
|
||||
describe "Users Security" do
|
||||
describe "Project" do
|
||||
before do
|
||||
before do
|
||||
@u1 = Factory :user
|
||||
end
|
||||
|
||||
describe "GET /login" do
|
||||
describe "GET /login" do
|
||||
#it { new_user_session_path.should be_denied_for @u1 }
|
||||
#it { new_user_session_path.should be_denied_for :admin }
|
||||
#it { new_user_session_path.should be_denied_for :user }
|
||||
it { new_user_session_path.should_not be_404_for :visitor }
|
||||
end
|
||||
|
||||
describe "GET /keys" do
|
||||
describe "GET /keys" do
|
||||
it { keys_path.should be_allowed_for @u1 }
|
||||
it { keys_path.should be_allowed_for :admin }
|
||||
it { keys_path.should be_allowed_for :user }
|
||||
it { keys_path.should be_denied_for :visitor }
|
||||
end
|
||||
|
||||
describe "GET /profile" do
|
||||
describe "GET /profile" do
|
||||
it { profile_path.should be_allowed_for @u1 }
|
||||
it { profile_path.should be_allowed_for :admin }
|
||||
it { profile_path.should be_allowed_for :user }
|
||||
it { profile_path.should be_denied_for :visitor }
|
||||
end
|
||||
|
||||
describe "GET /profile/password" do
|
||||
describe "GET /profile/password" do
|
||||
it { profile_password_path.should be_allowed_for @u1 }
|
||||
it { profile_password_path.should be_allowed_for :admin }
|
||||
it { profile_password_path.should be_allowed_for :user }
|
||||
|
|
|
@ -11,7 +11,6 @@ require 'capybara/dsl'
|
|||
require 'factories'
|
||||
require 'monkeypatch'
|
||||
|
||||
|
||||
# Requires supporting ruby files with custom matchers and macros, etc,
|
||||
# in spec/support/ and its subdirectories.
|
||||
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
module LoginMacros
|
||||
def login_as role
|
||||
@user = User.create(:email => "user#{User.count}@mail.com",
|
||||
@user = User.create(:email => "user#{User.count}@mail.com",
|
||||
:name => "John Smith",
|
||||
:password => "123456",
|
||||
:password_confirmation => "123456",
|
||||
:skype => 'user_skype')
|
||||
|
||||
if role == :admin
|
||||
|
||||
if role == :admin
|
||||
@user.admin = true
|
||||
@user.save!
|
||||
end
|
||||
|
@ -23,7 +23,7 @@ module LoginMacros
|
|||
fill_in "Password", :with => "123456"
|
||||
click_button "Sign in"
|
||||
end
|
||||
|
||||
|
||||
def logout
|
||||
click_link "Logout" rescue nil
|
||||
end
|
||||
|
|
|
@ -18,17 +18,17 @@ RSpec::Matchers.define :be_denied_for do |user|
|
|||
match do |url|
|
||||
include UrlAccess
|
||||
url_denied?(user, url)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
RSpec::Matchers.define :be_404_for do |user|
|
||||
match do |url|
|
||||
include UrlAccess
|
||||
url_404?(user, url)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
module UrlAccess
|
||||
module UrlAccess
|
||||
def url_allowed?(user, url)
|
||||
emulate_user(user)
|
||||
visit url
|
||||
|
|
|
@ -6,13 +6,12 @@ shared_examples_for :project_side_pane do
|
|||
it { should have_content("Tree") }
|
||||
end
|
||||
|
||||
|
||||
shared_examples_for :tree_view do
|
||||
subject { page }
|
||||
|
||||
it "should have Tree View of project" do
|
||||
should have_content("app")
|
||||
should have_content("history")
|
||||
should have_content("Gemfile")
|
||||
should have_content("app")
|
||||
should have_content("history")
|
||||
should have_content("Gemfile")
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue