Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Léo-Paul Géneau
gitlab-ce
Commits
7e1f90ab
Commit
7e1f90ab
authored
Jul 17, 2018
by
Sanad Liaquat
Committed by
Rémy Coutable
Jul 17, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
QA scenario to add/edit/delete a file via the Web UI
parent
59b82fbc
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
197 additions
and
2 deletions
+197
-2
qa/qa.rb
qa/qa.rb
+10
-0
qa/qa/factory/resource/file.rb
qa/qa/factory/resource/file.rb
+34
-0
qa/qa/page/file/form.rb
qa/qa/page/file/form.rb
+40
-0
qa/qa/page/file/shared/commit_message.rb
qa/qa/page/file/shared/commit_message.rb
+19
-0
qa/qa/page/file/show.rb
qa/qa/page/file/show.rb
+30
-0
qa/qa/page/project/show.rb
qa/qa/page/project/show.rb
+8
-0
qa/qa/page/view.rb
qa/qa/page/view.rb
+2
-2
qa/qa/specs/features/project/file_spec.rb
qa/qa/specs/features/project/file_spec.rb
+54
-0
No files found.
qa/qa.rb
View file @
7e1f90ab
...
...
@@ -53,6 +53,7 @@ module QA
autoload
:User
,
'qa/factory/resource/user'
autoload
:ProjectMilestone
,
'qa/factory/resource/project_milestone'
autoload
:Wiki
,
'qa/factory/resource/wiki'
autoload
:File
,
'qa/factory/resource/file'
autoload
:Fork
,
'qa/factory/resource/fork'
end
...
...
@@ -136,6 +137,15 @@ module QA
autoload
:Show
,
'qa/page/group/show'
end
module
File
autoload
:Form
,
'qa/page/file/form'
autoload
:Show
,
'qa/page/file/show'
module
Shared
autoload
:CommitMessage
,
'qa/page/file/shared/commit_message'
end
end
module
Project
autoload
:New
,
'qa/page/project/new'
autoload
:Show
,
'qa/page/project/show'
...
...
qa/qa/factory/resource/file.rb
0 → 100644
View file @
7e1f90ab
module
QA
module
Factory
module
Resource
class
File
<
Factory
::
Base
attr_accessor
:name
,
:content
,
:commit_message
dependency
Factory
::
Resource
::
Project
,
as: :project
do
|
project
|
project
.
name
=
'project-with-new-file'
end
def
initialize
@name
=
'QA Test - File name'
@content
=
'QA Test - File content'
@commit_message
=
'QA Test - Commit message'
end
def
fabricate!
project
.
visit!
Page
::
Project
::
Show
.
act
{
go_to_new_file!
}
Page
::
File
::
Form
.
perform
do
|
page
|
page
.
add_name
(
@name
)
page
.
add_content
(
@content
)
page
.
add_commit_message
(
@commit_message
)
page
.
commit_changes
end
end
end
end
end
end
qa/qa/page/file/form.rb
0 → 100644
View file @
7e1f90ab
module
QA
module
Page
module
File
class
Form
<
Page
::
Base
include
Shared
::
CommitMessage
view
'app/views/projects/blob/_editor.html.haml'
do
element
:file_name
,
"text_field_tag 'file_name'"
element
:editor
,
'#editor'
end
view
'app/views/projects/_commit_button.html.haml'
do
element
:commit_changes
,
"button_tag 'Commit changes'"
end
def
add_name
(
name
)
fill_in
'file_name'
,
with:
name
end
def
add_content
(
content
)
text_area
.
set
content
end
def
remove_content
text_area
.
send_keys
([
:command
,
'a'
],
:backspace
)
end
def
commit_changes
click_on
'Commit changes'
end
private
def
text_area
find
(
'#editor>textarea'
,
visible:
false
)
end
end
end
end
end
qa/qa/page/file/shared/commit_message.rb
0 → 100644
View file @
7e1f90ab
module
QA
module
Page
module
File
module
Shared
module
CommitMessage
def
self
.
included
(
base
)
base
.
view
'app/views/shared/_commit_message_container.html.haml'
do
element
:commit_message
,
"text_area_tag 'commit_message'"
end
end
def
add_commit_message
(
message
)
fill_in
'commit_message'
,
with:
message
end
end
end
end
end
end
qa/qa/page/file/show.rb
0 → 100644
View file @
7e1f90ab
module
QA
module
Page
module
File
class
Show
<
Page
::
Base
include
Shared
::
CommitMessage
view
'app/helpers/blob_helper.rb'
do
element
:edit_button
,
"_('Edit')"
element
:delete_button
,
/label:\s+"Delete"/
end
view
'app/views/projects/blob/_remove.html.haml'
do
element
:delete_file_button
,
"button_tag 'Delete file'"
end
def
click_edit
click_on
'Edit'
end
def
click_delete
click_on
'Delete'
end
def
click_delete_file
click_on
'Delete file'
end
end
end
end
end
qa/qa/page/project/show.rb
View file @
7e1f90ab
...
...
@@ -31,10 +31,18 @@ module QA
element
:tree_holder
,
'.tree-holder'
end
view
'app/presenters/project_presenter.rb'
do
element
:new_file_button
,
"label: _('New file'),"
end
def
project_name
find
(
'.qa-project-name'
).
text
end
def
go_to_new_file!
click_on
'New file'
end
def
switch_to_branch
(
branch_name
)
find_element
(
:branches_select
).
click
...
...
qa/qa/page/view.rb
View file @
7e1f90ab
...
...
@@ -9,7 +9,7 @@ module QA
end
def
pathname
@pathname
||=
Pathname
.
new
(
File
.
join
(
__dir__
,
'../../../'
,
@path
))
@pathname
||=
Pathname
.
new
(
::
File
.
join
(
__dir__
,
'../../../'
,
@path
))
.
cleanpath
.
expand_path
end
...
...
@@ -23,7 +23,7 @@ module QA
# elements' existence.
#
@missing
||=
@elements
.
dup
.
tap
do
|
elements
|
File
.
foreach
(
pathname
.
to_s
)
do
|
line
|
::
File
.
foreach
(
pathname
.
to_s
)
do
|
line
|
elements
.
reject!
{
|
element
|
element
.
matches?
(
line
)
}
end
end
...
...
qa/qa/specs/features/project/file_spec.rb
0 → 100644
View file @
7e1f90ab
module
QA
describe
'File Functionality'
,
:core
do
it
'lets a user create, edit and delete a file via WebUI'
do
Runtime
::
Browser
.
visit
(
:gitlab
,
Page
::
Main
::
Login
)
Page
::
Main
::
Login
.
act
{
sign_in_using_credentials
}
# Create
file_name
=
'QA Test - File name'
file_content
=
'QA Test - File content'
commit_message_for_create
=
'QA Test - Create new file'
Factory
::
Resource
::
File
.
fabricate!
do
|
file
|
file
.
name
=
file_name
file
.
content
=
file_content
file
.
commit_message
=
commit_message_for_create
end
expect
(
page
).
to
have_content
(
'The file has been successfully created.'
)
expect
(
page
).
to
have_content
(
file_name
)
expect
(
page
).
to
have_content
(
file_content
)
expect
(
page
).
to
have_content
(
commit_message_for_create
)
# Edit
updated_file_content
=
'QA Test - Updated file content'
commit_message_for_update
=
'QA Test - Update file'
Page
::
File
::
Show
.
act
{
click_edit
}
Page
::
File
::
Form
.
act
do
remove_content
add_content
(
updated_file_content
)
add_commit_message
(
commit_message_for_update
)
commit_changes
end
expect
(
page
).
to
have_content
(
'Your changes have been successfully committed.'
)
expect
(
page
).
to
have_content
(
updated_file_content
)
expect
(
page
).
to
have_content
(
commit_message_for_update
)
# Delete
commit_message_for_delete
=
'QA Test - Delete file'
Page
::
File
::
Show
.
act
do
click_delete
add_commit_message
(
commit_message_for_delete
)
click_delete_file
end
expect
(
page
).
to
have_content
(
'The file has been successfully deleted.'
)
expect
(
page
).
to
have_content
(
commit_message_for_delete
)
expect
(
page
).
to
have_no_content
(
file_name
)
end
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment