Commit fd338d67 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch 'master' of github.com:gitlabhq/gitlabhq

parents fedacf52 de5e0e59
...@@ -15,8 +15,8 @@ ...@@ -15,8 +15,8 @@
#= require jquery.atwho #= require jquery.atwho
#= require jquery.scrollTo #= require jquery.scrollTo
#= require jquery.blockUI #= require jquery.blockUI
#= require turbolinks
#= require jquery.turbolinks #= require jquery.turbolinks
#= require turbolinks
#= require bootstrap #= require bootstrap
#= require select2 #= require select2
#= require raphael #= require raphael
......
...@@ -80,7 +80,7 @@ class Spinach::Features::Dashboard < Spinach::FeatureSteps ...@@ -80,7 +80,7 @@ class Spinach::Features::Dashboard < Spinach::FeatureSteps
end end
step 'I should see 1 project at group list' do step 'I should see 1 project at group list' do
page.find('span.last_activity/span').should have_content('1') find('span.last_activity/span').should have_content('1')
end end
def project def project
......
...@@ -63,7 +63,7 @@ class Spinach::Features::ExploreGroupsFeature < Spinach::FeatureSteps ...@@ -63,7 +63,7 @@ class Spinach::Features::ExploreGroupsFeature < Spinach::FeatureSteps
end end
step 'I should not see member roles' do step 'I should not see member roles' do
page.body.should_not match(%r{owner|developer|reporter|guest}i) body.should_not match(%r{owner|developer|reporter|guest}i)
end end
protected protected
......
...@@ -22,14 +22,14 @@ class Spinach::Features::ExploreProjectsFeature < Spinach::FeatureSteps ...@@ -22,14 +22,14 @@ class Spinach::Features::ExploreProjectsFeature < Spinach::FeatureSteps
step 'I should see empty public project details with http clone info' do step 'I should see empty public project details with http clone info' do
project = Project.find_by(name: 'Empty Public Project') project = Project.find_by(name: 'Empty Public Project')
page.all(:css, '.git-empty .clone').each do |element| all(:css, '.git-empty .clone').each do |element|
element.text.should include(project.http_url_to_repo) element.text.should include(project.http_url_to_repo)
end end
end end
step 'I should see empty public project details with ssh clone info' do step 'I should see empty public project details with ssh clone info' do
project = Project.find_by(name: 'Empty Public Project') project = Project.find_by(name: 'Empty Public Project')
page.all(:css, '.git-empty .clone').each do |element| all(:css, '.git-empty .clone').each do |element|
element.text.should include(project.url_to_repo) element.text.should include(project.url_to_repo)
end end
end end
......
...@@ -80,6 +80,6 @@ class Spinach::Features::ProjectBrowseBranches < Spinach::FeatureSteps ...@@ -80,6 +80,6 @@ class Spinach::Features::ProjectBrowseBranches < Spinach::FeatureSteps
end end
step "I should not see branch 'improve/awesome'" do step "I should not see branch 'improve/awesome'" do
page.all(visible: true).should_not have_content 'improve/awesome' all(visible: true).should_not have_content 'improve/awesome'
end end
end end
...@@ -17,10 +17,10 @@ class Spinach::Features::ProjectBrowseCommits < Spinach::FeatureSteps ...@@ -17,10 +17,10 @@ class Spinach::Features::ProjectBrowseCommits < Spinach::FeatureSteps
step 'I see commits atom feed' do step 'I see commits atom feed' do
commit = @project.repository.commit commit = @project.repository.commit
page.response_headers['Content-Type'].should have_content("application/atom+xml") response_headers['Content-Type'].should have_content("application/atom+xml")
page.body.should have_selector("title", text: "Recent commits to #{@project.name}") body.should have_selector("title", text: "Recent commits to #{@project.name}")
page.body.should have_selector("author email", text: commit.author_email) body.should have_selector("author email", text: commit.author_email)
page.body.should have_selector("entry summary", text: commit.description[0..10]) body.should have_selector("entry summary", text: commit.description[0..10])
end end
step 'I click on commit link' do step 'I click on commit link' do
...@@ -72,7 +72,7 @@ class Spinach::Features::ProjectBrowseCommits < Spinach::FeatureSteps ...@@ -72,7 +72,7 @@ class Spinach::Features::ProjectBrowseCommits < Spinach::FeatureSteps
end end
step 'The diff links to both the previous and current image' do step 'The diff links to both the previous and current image' do
links = page.all('.two-up span div a') links = all('.two-up span div a')
links[0]['href'].should =~ %r{blob/#{sample_image_commit.old_blob_id}} links[0]['href'].should =~ %r{blob/#{sample_image_commit.old_blob_id}}
links[1]['href'].should =~ %r{blob/#{sample_image_commit.new_blob_id}} links[1]['href'].should =~ %r{blob/#{sample_image_commit.new_blob_id}}
end end
......
...@@ -29,7 +29,7 @@ class Spinach::Features::ProjectBrowseFiles < Spinach::FeatureSteps ...@@ -29,7 +29,7 @@ class Spinach::Features::ProjectBrowseFiles < Spinach::FeatureSteps
end end
step 'I should see raw file content' do step 'I should see raw file content' do
page.source.should == sample_blob.data source.should == sample_blob.data
end end
step 'I click button "edit"' do step 'I click button "edit"' do
...@@ -37,12 +37,12 @@ class Spinach::Features::ProjectBrowseFiles < Spinach::FeatureSteps ...@@ -37,12 +37,12 @@ class Spinach::Features::ProjectBrowseFiles < Spinach::FeatureSteps
end end
step 'I can edit code' do step 'I can edit code' do
page.execute_script('editor.setValue("GitlabFileEditor")') execute_script('editor.setValue("GitlabFileEditor")')
page.evaluate_script('editor.getValue()').should == "GitlabFileEditor" evaluate_script('editor.getValue()').should == "GitlabFileEditor"
end end
step 'I edit code' do step 'I edit code' do
page.execute_script('editor.setValue("GitlabFileEditor")') execute_script('editor.setValue("GitlabFileEditor")')
end end
step 'I click link "Diff"' do step 'I click link "Diff"' do
......
...@@ -61,7 +61,7 @@ class Spinach::Features::ProjectBrowseTags < Spinach::FeatureSteps ...@@ -61,7 +61,7 @@ class Spinach::Features::ProjectBrowseTags < Spinach::FeatureSteps
step "I should not see tag 'v1.1.0'" do step "I should not see tag 'v1.1.0'" do
within '.tags' do within '.tags' do
page.all(visible: true).should_not have_content 'v1.1.0' all(visible: true).should_not have_content 'v1.1.0'
end end
end end
......
...@@ -29,7 +29,7 @@ class Spinach::Features::ProjectHooks < Spinach::FeatureSteps ...@@ -29,7 +29,7 @@ class Spinach::Features::ProjectHooks < Spinach::FeatureSteps
end end
step 'I should see newly created hook' do step 'I should see newly created hook' do
page.current_path.should == project_hooks_path(current_project) current_path.should == project_hooks_path(current_project)
page.should have_content(@url) page.should have_content(@url)
end end
...@@ -44,7 +44,7 @@ class Spinach::Features::ProjectHooks < Spinach::FeatureSteps ...@@ -44,7 +44,7 @@ class Spinach::Features::ProjectHooks < Spinach::FeatureSteps
end end
step 'hook should be triggered' do step 'hook should be triggered' do
page.current_path.should == project_hooks_path(current_project) current_path.should == project_hooks_path(current_project)
page.should have_selector '.flash-notice', page.should have_selector '.flash-notice',
text: 'Hook successfully executed.' text: 'Hook successfully executed.'
end end
......
...@@ -113,7 +113,7 @@ class Spinach::Features::ProjectIssues < Spinach::FeatureSteps ...@@ -113,7 +113,7 @@ class Spinach::Features::ProjectIssues < Spinach::FeatureSteps
step 'I should see selected milestone with title "v3.0"' do step 'I should see selected milestone with title "v3.0"' do
issues_milestone_selector = "#issue_milestone_id_chzn > a" issues_milestone_selector = "#issue_milestone_id_chzn > a"
page.find(issues_milestone_selector).should have_content("v3.0") find(issues_milestone_selector).should have_content("v3.0")
end end
When 'I select first assignee from "Shop" project' do When 'I select first assignee from "Shop" project' do
...@@ -126,7 +126,7 @@ class Spinach::Features::ProjectIssues < Spinach::FeatureSteps ...@@ -126,7 +126,7 @@ class Spinach::Features::ProjectIssues < Spinach::FeatureSteps
issues_assignee_selector = "#issue_assignee_id_chzn > a" issues_assignee_selector = "#issue_assignee_id_chzn > a"
assignee_name = project.users.first.name assignee_name = project.users.first.name
page.find(issues_assignee_selector).should have_content(assignee_name) find(issues_assignee_selector).should have_content(assignee_name)
end end
step 'project "Shop" have "Release 0.4" open issue' do step 'project "Shop" have "Release 0.4" open issue' do
...@@ -164,7 +164,7 @@ class Spinach::Features::ProjectIssues < Spinach::FeatureSteps ...@@ -164,7 +164,7 @@ class Spinach::Features::ProjectIssues < Spinach::FeatureSteps
step 'I see empty project details with ssh clone info' do step 'I see empty project details with ssh clone info' do
project = Project.find_by(name: 'Empty Project') project = Project.find_by(name: 'Empty Project')
page.all(:css, '.git-empty .clone').each do |element| all(:css, '.git-empty .clone').each do |element|
element.text.should include(project.url_to_repo) element.text.should include(project.url_to_repo)
end end
end end
......
...@@ -30,12 +30,12 @@ class Spinach::Features::ProjectNetworkGraph < Spinach::FeatureSteps ...@@ -30,12 +30,12 @@ class Spinach::Features::ProjectNetworkGraph < Spinach::FeatureSteps
end end
When 'I switch ref to "feature"' do When 'I switch ref to "feature"' do
page.select 'feature', from: 'ref' select 'feature', from: 'ref'
sleep 2 sleep 2
end end
When 'I switch ref to "v1.0.0"' do When 'I switch ref to "v1.0.0"' do
page.select 'v1.0.0', from: 'ref' select 'v1.0.0', from: 'ref'
sleep 2 sleep 2
end end
......
...@@ -48,8 +48,8 @@ class Spinach::Features::ProjectRedirects < Spinach::FeatureSteps ...@@ -48,8 +48,8 @@ class Spinach::Features::ProjectRedirects < Spinach::FeatureSteps
step 'I should be redirected to "Community" page' do step 'I should be redirected to "Community" page' do
project = Project.find_by(name: 'Community') project = Project.find_by(name: 'Community')
page.current_path.should == "/#{project.path_with_namespace}" current_path.should == "/#{project.path_with_namespace}"
page.status_code.should == 200 status_code.should == 200
end end
step 'I get redirected to signin page where I sign in' do step 'I get redirected to signin page where I sign in' do
...@@ -63,7 +63,7 @@ class Spinach::Features::ProjectRedirects < Spinach::FeatureSteps ...@@ -63,7 +63,7 @@ class Spinach::Features::ProjectRedirects < Spinach::FeatureSteps
step 'I should be redirected to "Enterprise" page' do step 'I should be redirected to "Enterprise" page' do
project = Project.find_by(name: 'Enterprise') project = Project.find_by(name: 'Enterprise')
page.current_path.should == "/#{project.path_with_namespace}" current_path.should == "/#{project.path_with_namespace}"
page.status_code.should == 200 status_code.should == 200
end end
end end
...@@ -22,7 +22,7 @@ class Spinach::Features::ProjectStar < Spinach::FeatureSteps ...@@ -22,7 +22,7 @@ class Spinach::Features::ProjectStar < Spinach::FeatureSteps
# Requires @javascript # Requires @javascript
step "I click on the star toggle button" do step "I click on the star toggle button" do
page.find(".star .toggle", visible: true).click find(".star .toggle", visible: true).click
end end
protected protected
......
...@@ -2,15 +2,15 @@ module SharedActiveTab ...@@ -2,15 +2,15 @@ module SharedActiveTab
include Spinach::DSL include Spinach::DSL
def ensure_active_main_tab(content) def ensure_active_main_tab(content)
page.find('.main-nav li.active').should have_content(content) find('.main-nav li.active').should have_content(content)
end end
def ensure_active_sub_tab(content) def ensure_active_sub_tab(content)
page.find('div.content ul.nav-tabs li.active').should have_content(content) find('div.content ul.nav-tabs li.active').should have_content(content)
end end
def ensure_active_sub_nav(content) def ensure_active_sub_nav(content)
page.find('div.content ul.nav-stacked-menu li.active').should have_content(content) find('div.content ul.nav-stacked-menu li.active').should have_content(content)
end end
step 'no other main tabs should be active' do step 'no other main tabs should be active' do
......
...@@ -2,8 +2,8 @@ module SharedMarkdown ...@@ -2,8 +2,8 @@ module SharedMarkdown
include Spinach::DSL include Spinach::DSL
def header_should_have_correct_id_and_link(level, text, id, parent = ".wiki") def header_should_have_correct_id_and_link(level, text, id, parent = ".wiki")
page.find(:css, "#{parent} h#{level}##{id}").text.should == text find(:css, "#{parent} h#{level}##{id}").text.should == text
page.find(:css, "#{parent} h#{level}##{id} > :last-child")[:href].should =~ /##{id}$/ find(:css, "#{parent} h#{level}##{id} > :last-child")[:href].should =~ /##{id}$/
end end
step 'Header "Description header" should have correct id and link' do step 'Header "Description header" should have correct id and link' do
......
...@@ -419,6 +419,6 @@ module SharedPaths ...@@ -419,6 +419,6 @@ module SharedPaths
# ---------------------------------------- # ----------------------------------------
step 'page status code should be 404' do step 'page status code should be 404' do
page.status_code.should == 404 status_code.should == 404
end end
end end
...@@ -5,6 +5,6 @@ class Spinach::Features::User < Spinach::FeatureSteps ...@@ -5,6 +5,6 @@ class Spinach::Features::User < Spinach::FeatureSteps
include SharedProject include SharedProject
step 'I should see user "John Doe" page' do step 'I should see user "John Doe" page' do
expect(page.title).to match(/^\s*John Doe/) expect(title).to match(/^\s*John Doe/)
end end
end end
...@@ -33,7 +33,7 @@ describe "Admin::Hooks", feature: true do ...@@ -33,7 +33,7 @@ describe "Admin::Hooks", feature: true do
end end
it "should open new hook popup" do it "should open new hook popup" do
page.current_path.should == admin_hooks_path current_path.should == admin_hooks_path
page.should have_content(@url) page.should have_content(@url)
end end
end end
...@@ -45,7 +45,7 @@ describe "Admin::Hooks", feature: true do ...@@ -45,7 +45,7 @@ describe "Admin::Hooks", feature: true do
click_link "Test Hook" click_link "Test Hook"
end end
it { page.current_path.should == admin_hooks_path } it { current_path.should == admin_hooks_path }
end end
end end
...@@ -17,12 +17,12 @@ describe "Dashboard Issues Feed", feature: true do ...@@ -17,12 +17,12 @@ describe "Dashboard Issues Feed", feature: true do
it "should render atom feed via private token" do it "should render atom feed via private token" do
visit issues_dashboard_path(:atom, private_token: user.private_token) visit issues_dashboard_path(:atom, private_token: user.private_token)
page.response_headers['Content-Type'].should have_content("application/atom+xml") response_headers['Content-Type'].should have_content("application/atom+xml")
page.body.should have_selector("title", text: "#{user.name} issues") body.should have_selector("title", text: "#{user.name} issues")
page.body.should have_selector("author email", text: issue1.author_email) body.should have_selector("author email", text: issue1.author_email)
page.body.should have_selector("entry summary", text: issue1.title) body.should have_selector("entry summary", text: issue1.title)
page.body.should have_selector("author email", text: issue2.author_email) body.should have_selector("author email", text: issue2.author_email)
page.body.should have_selector("entry summary", text: issue2.title) body.should have_selector("entry summary", text: issue2.title)
end end
end end
end end
......
...@@ -7,7 +7,7 @@ describe "Dashboard Feed", feature: true do ...@@ -7,7 +7,7 @@ describe "Dashboard Feed", feature: true do
context "projects atom feed via private token" do context "projects atom feed via private token" do
it "should render projects atom feed" do it "should render projects atom feed" do
visit dashboard_path(:atom, private_token: user.private_token) visit dashboard_path(:atom, private_token: user.private_token)
page.body.should have_selector("feed title") body.should have_selector("feed title")
end end
end end
...@@ -24,11 +24,11 @@ describe "Dashboard Feed", feature: true do ...@@ -24,11 +24,11 @@ describe "Dashboard Feed", feature: true do
end end
it "should have issue opened event" do it "should have issue opened event" do
page.body.should have_content("#{user.name} opened issue ##{issue.iid}") body.should have_content("#{user.name} opened issue ##{issue.iid}")
end end
it "should have issue comment event" do it "should have issue comment event" do
page.body.should have_content("#{user.name} commented on issue ##{issue.iid}") body.should have_content("#{user.name} commented on issue ##{issue.iid}")
end end
end end
end end
......
...@@ -13,10 +13,10 @@ describe "Issues Feed", feature: true do ...@@ -13,10 +13,10 @@ describe "Issues Feed", feature: true do
login_with user login_with user
visit project_issues_path(project, :atom) visit project_issues_path(project, :atom)
page.response_headers['Content-Type'].should have_content("application/atom+xml") response_headers['Content-Type'].should have_content("application/atom+xml")
page.body.should have_selector("title", text: "#{project.name} issues") body.should have_selector("title", text: "#{project.name} issues")
page.body.should have_selector("author email", text: issue.author_email) body.should have_selector("author email", text: issue.author_email)
page.body.should have_selector("entry summary", text: issue.title) body.should have_selector("entry summary", text: issue.title)
end end
end end
...@@ -24,10 +24,10 @@ describe "Issues Feed", feature: true do ...@@ -24,10 +24,10 @@ describe "Issues Feed", feature: true do
it "should render atom feed" do it "should render atom feed" do
visit project_issues_path(project, :atom, private_token: user.private_token) visit project_issues_path(project, :atom, private_token: user.private_token)
page.response_headers['Content-Type'].should have_content("application/atom+xml") response_headers['Content-Type'].should have_content("application/atom+xml")
page.body.should have_selector("title", text: "#{project.name} issues") body.should have_selector("title", text: "#{project.name} issues")
page.body.should have_selector("author email", text: issue.author_email) body.should have_selector("author email", text: issue.author_email)
page.body.should have_selector("entry summary", text: issue.title) body.should have_selector("entry summary", text: issue.title)
end end
end end
end end
......
...@@ -59,9 +59,9 @@ describe "Issues", feature: true do ...@@ -59,9 +59,9 @@ describe "Issues", feature: true do
page.should have_content "Assign to #{@user.name}" page.should have_content "Assign to #{@user.name}"
page.first('#s2id_issue_assignee_id').click first('#s2id_issue_assignee_id').click
sleep 2 # wait for ajax stuff to complete sleep 2 # wait for ajax stuff to complete
page.first('.user-result').click first('.user-result').click
click_button "Save changes" click_button "Save changes"
...@@ -212,7 +212,7 @@ describe "Issues", feature: true do ...@@ -212,7 +212,7 @@ describe "Issues", feature: true do
click_button 'Update Issue' click_button 'Update Issue'
page.should have_content "Assignee:" page.should have_content "Assignee:"
page.has_select?('issue_assignee_id', :selected => project.team.members.first.name) has_select?('issue_assignee_id', :selected => project.team.members.first.name)
end end
end end
...@@ -249,7 +249,7 @@ describe "Issues", feature: true do ...@@ -249,7 +249,7 @@ describe "Issues", feature: true do
click_button 'Update Issue' click_button 'Update Issue'
page.should have_content "Milestone changed to #{milestone.title}" page.should have_content "Milestone changed to #{milestone.title}"
page.has_select?('issue_assignee_id', :selected => milestone.title) has_select?('issue_assignee_id', :selected => milestone.title)
end end
end end
...@@ -283,9 +283,9 @@ describe "Issues", feature: true do ...@@ -283,9 +283,9 @@ describe "Issues", feature: true do
visit project_issue_path(project, issue) visit project_issue_path(project, issue)
page.should have_content "Assignee: #{user2.name}" page.should have_content "Assignee: #{user2.name}"
page.first('#s2id_issue_assignee_id').click first('#s2id_issue_assignee_id').click
sleep 2 # wait for ajax stuff to complete sleep 2 # wait for ajax stuff to complete
page.first('.user-result').click first('.user-result').click
page.should have_content "Assignee: Unassigned" page.should have_content "Assignee: Unassigned"
sleep 2 # wait for ajax stuff to complete sleep 2 # wait for ajax stuff to complete
......
...@@ -21,6 +21,6 @@ module LoginHelpers ...@@ -21,6 +21,6 @@ module LoginHelpers
# Requires Javascript driver. # Requires Javascript driver.
def logout def logout
page.find(:css, ".icon-signout").click find(:css, ".icon-signout").click
end end
end end
...@@ -42,19 +42,19 @@ module UrlAccess ...@@ -42,19 +42,19 @@ module UrlAccess
def url_allowed?(user, url) def url_allowed?(user, url)
emulate_user(user) emulate_user(user)
visit url visit url
(page.status_code != 404 && current_path != new_user_session_path) (status_code != 404 && current_path != new_user_session_path)
end end
def url_denied?(user, url) def url_denied?(user, url)
emulate_user(user) emulate_user(user)
visit url visit url
(page.status_code == 404 || current_path == new_user_session_path) (status_code == 404 || current_path == new_user_session_path)
end end
def url_404?(user, url) def url_404?(user, url)
emulate_user(user) emulate_user(user)
visit url visit url
page.status_code == 404 status_code == 404
end end
def emulate_user(user) def emulate_user(user)
......
...@@ -17,9 +17,9 @@ module Select2Helper ...@@ -17,9 +17,9 @@ module Select2Helper
selector = options[:from] selector = options[:from]
if options[:multiple] if options[:multiple]
page.execute_script("$('#{selector}').select2('val', ['#{value}']);") execute_script("$('#{selector}').select2('val', ['#{value}']);")
else else
page.execute_script("$('#{selector}').select2('val', '#{value}');") execute_script("$('#{selector}').select2('val', '#{value}');")
end end
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment