Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCiro Santilli <ciro.santilli@gmail.com>2014-09-26 17:26:52 +0400
committerCiro Santilli <ciro.santilli@gmail.com>2014-09-26 17:33:48 +0400
commitf456fce2a5bf62589c2bd07e99835b07ab7bd976 (patch)
tree54dc6044d8831f3a1d9f5ff4db13424d243312f1 /features
parentfd338d67159e6dffaf54fd42fbeddb3b17e4d49f (diff)
Add web UI file CRUD tests.
me/ciro/bak/git/cirosantilli.com/web'
Diffstat (limited to 'features')
-rw-r--r--features/project/source/browse_files.feature30
-rw-r--r--features/steps/project/browse_files.rb76
2 files changed, 102 insertions, 4 deletions
diff --git a/features/project/source/browse_files.feature b/features/project/source/browse_files.feature
index e4f10c0de2e..d658f545d1c 100644
--- a/features/project/source/browse_files.feature
+++ b/features/project/source/browse_files.feature
@@ -25,12 +25,32 @@ Feature: Project Browse files
Then I can see new file page
@javascript
+ Scenario: I can create and commit file
+ Given I click on "new file" link in repo
+ And I edit code
+ And I fill the new file name
+ And I fill the commit message
+ And I click on "Commit changes"
+ Then I am redirected to the new file
+ And I should see its new content
+
+ @javascript
Scenario: I can edit file
Given I click on ".gitignore" file in repo
And I click button "edit"
Then I can edit code
@javascript
+ Scenario: I can edit and commit file
+ Given I click on ".gitignore" file in repo
+ And I click button "edit"
+ And I edit code
+ And I fill the commit message
+ And I click on "Commit changes"
+ Then I am redirected to the ".gitignore"
+ And I should see its new content
+
+ @javascript
Scenario: I can see editing preview
Given I click on ".gitignore" file in repo
And I click button "edit"
@@ -38,6 +58,16 @@ Feature: Project Browse files
And I click link "Diff"
Then I see diff
+ @javascript
+ Scenario: I can remove file and commit
+ Given I click on ".gitignore" file in repo
+ And I see the ".gitignore"
+ And I click on "remove"
+ And I fill the commit message
+ And I click on "Remove file"
+ Then I am redirected to the files URL
+ And I don't see the ".gitignore"
+
Scenario: I can browse directory with Browse Dir
Given I click on files directory
And I click on history link
diff --git a/features/steps/project/browse_files.rb b/features/steps/project/browse_files.rb
index 536902934ba..c8dfda2b68b 100644
--- a/features/steps/project/browse_files.rb
+++ b/features/steps/project/browse_files.rb
@@ -16,12 +16,24 @@ class Spinach::Features::ProjectBrowseFiles < Spinach::FeatureSteps
page.should have_content "LICENSE"
end
+ step 'I see the ".gitignore"' do
+ page.should have_content '.gitignore'
+ end
+
+ step 'I don\'t see the ".gitignore"' do
+ page.should_not have_content '.gitignore'
+ end
+
step 'I click on ".gitignore" file in repo' do
click_link ".gitignore"
end
step 'I should see its content' do
- page.should have_content "*.rbc"
+ page.should have_content old_gitignore_content
+ end
+
+ step 'I should see its new content' do
+ page.should have_content new_gitignore_content
end
step 'I click link "raw"' do
@@ -37,18 +49,38 @@ class Spinach::Features::ProjectBrowseFiles < Spinach::FeatureSteps
end
step 'I can edit code' do
- execute_script('editor.setValue("GitlabFileEditor")')
- evaluate_script('editor.getValue()').should == "GitlabFileEditor"
+ set_new_content
+ evaluate_script('editor.getValue()').should == new_gitignore_content
end
step 'I edit code' do
- execute_script('editor.setValue("GitlabFileEditor")')
+ set_new_content
+ end
+
+ step 'I fill the new file name' do
+ fill_in :file_name, with: new_file_name
+ end
+
+ step 'I fill the commit message' do
+ fill_in :commit_message, with: 'Not yet a commit message.'
end
step 'I click link "Diff"' do
click_link 'Diff'
end
+ step 'I click on "Commit changes"' do
+ click_button 'Commit changes'
+ end
+
+ step 'I click on "remove"' do
+ click_link 'remove'
+ end
+
+ step 'I click on "Remove file"' do
+ click_button 'Remove file'
+ end
+
step 'I see diff' do
page.should have_css '.line_holder.new'
end
@@ -97,12 +129,48 @@ class Spinach::Features::ProjectBrowseFiles < Spinach::FeatureSteps
click_link 'permalink'
end
+ step 'I am redirected to the files URL' do
+ current_path.should == project_tree_path(@project, 'master')
+ end
+
+ step 'I am redirected to the ".gitignore"' do
+ expect(current_path).to eq(project_blob_path(@project, 'master/.gitignore'))
+ end
+
step 'I am redirected to the permalink URL' do
expect(current_path).to eq(project_blob_path(
@project, @project.repository.commit.sha + '/.gitignore'))
end
+ step 'I am redirected to the new file' do
+ expect(current_path).to eq(project_blob_path(
+ @project, 'master/' + new_file_name))
+ end
+
step "I don't see the permalink link" do
expect(page).not_to have_link('permalink')
end
+
+ private
+
+ def set_new_content
+ execute_script("editor.setValue('#{new_gitignore_content}')")
+ end
+
+ # Content of the gitignore file on the seed repository.
+ def old_gitignore_content
+ '*.rbc'
+ end
+
+ # Constant value that differs from the content
+ # of the gitignore of the seed repository.
+ def new_gitignore_content
+ old_gitignore_content + 'a'
+ end
+
+ # Constant value that is a valid filename and
+ # not a filename present at root of the seed repository.
+ def new_file_name
+ 'not_a_file.md'
+ end
end