browse_files.feature 11.1 KB
Newer Older
Ciro Santilli's avatar
Ciro Santilli committed
1
Feature: Project Source Browse Files
2 3
  Background:
    Given I sign in as a user
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
4 5 6 7 8 9 10
    And I own project "Shop"
    Given I visit project source page

  Scenario: I browse files from master branch
    Then I should see files from repository

  Scenario: I browse files for specific ref
11 12
    Given I visit project source page for "6d39438"
    Then I should see files from repository for "6d39438"
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
13 14

  Scenario: I browse file content
15
    Given I click on ".gitignore" file in repo
Ciro Santilli's avatar
Ciro Santilli committed
16
    Then I should see its content
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
17 18

  Scenario: I browse raw file
19
    Given I visit blob file from repo
Ciro Santilli's avatar
Ciro Santilli committed
20
    And I click link "Raw"
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
21
    Then I should see raw file content
Valeriy Sizov's avatar
Valeriy Sizov committed
22

23
  Scenario: I can create file
Stan Hu's avatar
Stan Hu committed
24
    Given I click on "New file" link in repo
25 26
    Then I can see new file page

Douwe Maan's avatar
Douwe Maan committed
27 28 29 30 31 32
  Scenario: I can create file when I don't have write access
    Given I don't have write access
    And I click on "New file" link in repo
    Then I should see a notice about a new fork having been created
    Then I can see new file page

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
33
  @javascript
Ciro Santilli's avatar
Ciro Santilli committed
34
  Scenario: I can create and commit file
Stan Hu's avatar
Stan Hu committed
35
    Given I click on "New file" link in repo
Ciro Santilli's avatar
Ciro Santilli committed
36 37
    And I edit code
    And I fill the new file name
38 39 40 41
    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
42

Douwe Maan's avatar
Douwe Maan committed
43 44 45 46 47 48 49 50 51 52 53
  @javascript
  Scenario: I can create and commit file when I don't have write access
    Given I don't have write access
    And 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 fork's new merge request page
    And I can see the new commit message

54 55 56 57 58 59 60 61 62 63 64
  @javascript
  Scenario: I can create and commit file with new lines at the end of file
    Given I click on "New file" link in repo
    And I edit code with new lines at end of file
    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 click button "Edit"
    And I should see its content with new lines preserved at end of file

Douwe Maan's avatar
Douwe Maan committed
65 66 67 68 69 70 71 72
  @javascript
  Scenario: I can create and commit file and specify new branch
    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 fill the new branch name
    And I click on "Commit Changes"
Douwe Maan's avatar
Douwe Maan committed
73
    Then I am redirected to the new merge request page
Douwe Maan's avatar
Douwe Maan committed
74 75
    And I should see its new content

76 77
  @javascript
  Scenario: I can upload file and commit
Stan Hu's avatar
Stan Hu committed
78
    Given I click on "Upload file" link in repo
79 80
    And I upload a new text file
    And I fill the upload file commit message
Stan Hu's avatar
Stan Hu committed
81
    And I fill the new branch name
82 83
    And I click on "Upload file"
    Then I can see the new text file
Douwe Maan's avatar
Douwe Maan committed
84
    And I am redirected to the new merge request page
85 86
    And I can see the new commit message

Douwe Maan's avatar
Douwe Maan committed
87 88 89 90 91 92 93 94 95 96 97 98 99
  @javascript
  Scenario: I can upload file and commit when I don't have write access
    Given I don't have write access
    And I click on "Upload file" link in repo
    Then I should see a notice about a new fork having been created
    When I click on "Upload file" link in repo
    And I upload a new text file
    And I fill the upload file commit message
    And I click on "Upload file"
    Then I can see the new text file
    And I am redirected to the fork's new merge request page
    And I can see the new commit message

100 101 102 103 104 105 106 107 108 109
  @javascript
  Scenario: I can replace file and commit
    Given I click on ".gitignore" file in repo
    And I see the ".gitignore"
    And I click on "Replace"
    And I replace it with a text file
    And I fill the replace file commit message
    And I click on "Replace file"
    Then I can see the new text file
    And I can see the replacement commit message
110

111
  @javascript
Douwe Maan's avatar
Douwe Maan committed
112 113 114 115 116 117 118 119 120 121 122
  Scenario: I can replace file and commit when I don't have write access
    Given I don't have write access
    And I click on ".gitignore" file in repo
    And I see the ".gitignore"
    And I click on "Replace"
    Then I should see a notice about a new fork having been created
    When I click on "Replace"
    And I replace it with a text file
    And I fill the replace file commit message
    And I click on "Replace file"
    Then I can see the new text file
Douwe Maan's avatar
Douwe Maan committed
123
    And I am redirected to the fork's new merge request page
Douwe Maan's avatar
Douwe Maan committed
124
    And I can see the replacement commit message
125

126
  @javascript
127 128 129 130 131 132 133
  Scenario: I can create file in empty repo
    Given I own an empty project
    And I visit my empty project page
    And I create bare repo
    When I click on "add a file" link
    And I edit code
    And I fill the new file name
Ciro Santilli's avatar
Ciro Santilli committed
134
    And I fill the commit message
135
    And I click on "Commit Changes"
Ciro Santilli's avatar
Ciro Santilli committed
136 137 138
    Then I am redirected to the new file
    And I should see its new content

139 140
  @javascript
  Scenario: If I enter an illegal file name I see an error message
Stan Hu's avatar
Stan Hu committed
141
    Given I click on "New file" link in repo
142 143 144 145 146 147 148
    And I fill the new file name with an illegal name
    And I edit code
    And I fill the commit message
    And I click on "Commit changes"
    Then I am on the new file page
    And I see a commit error message

149 150 151 152 153 154 155 156 157 158
  @javascript
  Scenario: I can create file with a directory name
    Given I click on "New file" link in repo
    And I fill the new file name with a new directory
    And I edit code
    And I fill the commit message
    And I click on "Commit changes"
    Then I am redirected to the new file with directory
    And I should see its new content

Valeriy Sizov's avatar
Valeriy Sizov committed
159 160
  @javascript
  Scenario: I can edit file
161
    Given I click on ".gitignore" file in repo
Ciro Santilli's avatar
Ciro Santilli committed
162
    And I click button "Edit"
Valeriy Sizov's avatar
Valeriy Sizov committed
163
    Then I can edit code
skv-headless's avatar
skv-headless committed
164

Douwe Maan's avatar
Douwe Maan committed
165 166 167 168 169 170 171 172
  @javascript
  Scenario: I can edit file when I don't have write access
    Given I don't have write access
    And I click on ".gitignore" file in repo
    And I click button "Edit"
    Then I should see a notice about a new fork having been created
    And I can edit code

173 174 175 176
  Scenario: If the file is binary the edit link is hidden
    Given I visit a binary file in the repo
    Then I cannot see the edit button

Ciro Santilli's avatar
Ciro Santilli committed
177 178 179
  @javascript
  Scenario: I can edit and commit file
    Given I click on ".gitignore" file in repo
Ciro Santilli's avatar
Ciro Santilli committed
180
    And I click button "Edit"
Ciro Santilli's avatar
Ciro Santilli committed
181 182
    And I edit code
    And I fill the commit message
183
    And I click on "Commit Changes"
Ciro Santilli's avatar
Ciro Santilli committed
184 185 186
    Then I am redirected to the ".gitignore"
    And I should see its new content

Douwe Maan's avatar
Douwe Maan committed
187 188 189 190 191 192 193 194 195 196 197
  @javascript
  Scenario: I can edit and commit file when I don't have write access
    Given I don't have write access
    And 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 fork's new merge request page
    And I can see the new commit message

198 199 200 201 202 203 204 205
  @javascript
  Scenario: I can edit and commit file to new branch
    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 fill the new branch name
    And I click on "Commit Changes"
Douwe Maan's avatar
Douwe Maan committed
206
    Then I am redirected to the new merge request page
207 208
    And I should see its new content

209 210 211 212 213 214 215 216 217 218
  @javascript  @wip
  Scenario: If I don't change the content of the file I see an error message
    Given I click on ".gitignore" file in repo
    And I click button "edit"
    And I fill the commit message
    And I click on "Commit changes"
    # Test fails because carriage returns are added to the file.
    Then I am on the ".gitignore" edit file page
    And I see a commit error message

Stan Hu's avatar
Stan Hu committed
219 220 221 222 223 224 225
  @javascript
  Scenario: I can create directory in repo
    When I click on "New directory" link in repo
    And I fill the new directory name
    And I fill the commit message
    And I fill the new branch name
    And I click on "Create directory"
Douwe Maan's avatar
Douwe Maan committed
226
    Then I am redirected to the new merge request page
Stan Hu's avatar
Stan Hu committed
227

Douwe Maan's avatar
Douwe Maan committed
228 229 230 231 232 233 234 235 236 237 238
  @javascript
  Scenario: I can create directory in repo when I don't have write access
    Given I don't have write access
    When I click on "New directory" link in repo
    Then I should see a notice about a new fork having been created
    When I click on "New directory" link in repo
    And I fill the new directory name
    And I fill the commit message
    And I click on "Create directory"
    Then I am redirected to the fork's new merge request page

Stan Hu's avatar
Stan Hu committed
239 240 241 242 243 244 245 246 247
  @javascript
  Scenario: I attempt to create an existing directory
    When I click on "New directory" link in repo
    And I fill an existing directory name
    And I fill the commit message
    And I click on "Create directory"
    Then I see "Unable to create directory"
    And I am redirected to the root directory

skv-headless's avatar
skv-headless committed
248 249
  @javascript
  Scenario: I can see editing preview
250
    Given I click on ".gitignore" file in repo
Ciro Santilli's avatar
Ciro Santilli committed
251
    And I click button "Edit"
skv-headless's avatar
skv-headless committed
252 253 254 255
    And I edit code
    And I click link "Diff"
    Then I see diff

Ciro Santilli's avatar
Ciro Santilli committed
256
  @javascript
Douwe Maan's avatar
Douwe Maan committed
257
  Scenario: I can delete file and commit
Ciro Santilli's avatar
Ciro Santilli committed
258 259
    Given I click on ".gitignore" file in repo
    And I see the ".gitignore"
Douwe Maan's avatar
Douwe Maan committed
260
    And I click on "Delete"
Ciro Santilli's avatar
Ciro Santilli committed
261
    And I fill the commit message
Douwe Maan's avatar
Douwe Maan committed
262
    And I click on "Delete file"
Ciro Santilli's avatar
Ciro Santilli committed
263 264 265
    Then I am redirected to the files URL
    And I don't see the ".gitignore"

Douwe Maan's avatar
Douwe Maan committed
266 267 268 269 270 271 272 273 274 275 276 277 278
  @javascript
  Scenario: I can delete file and commit when I don't have write access
    Given I don't have write access
    And I click on ".gitignore" file in repo
    And I see the ".gitignore"
    And I click on "Delete"
    Then I should see a notice about a new fork having been created
    When I click on "Delete"
    And I fill the commit message
    And I click on "Delete file"
    Then I am redirected to the fork's new merge request page
    And I can see the new commit message

279
  Scenario: I can browse directory with Browse Dir
280
    Given I click on files directory
Ciro Santilli's avatar
Ciro Santilli committed
281
    And I click on History link
282 283 284 285
    Then I see Browse dir link

  Scenario: I can browse file with Browse File
    Given I click on readme file
Ciro Santilli's avatar
Ciro Santilli committed
286
    And I click on History link
287 288 289
    Then I see Browse file link

  Scenario: I can browse code with Browse Code
Ciro Santilli's avatar
Ciro Santilli committed
290
    Given I click on History link
291
    Then I see Browse code link
292 293 294 295 296

  # Permalink

  Scenario: I click on the permalink link from a branch ref
    Given I click on ".gitignore" file in repo
Ciro Santilli's avatar
Ciro Santilli committed
297
    And I click on Permalink
298 299 300 301 302 303
    Then I am redirected to the permalink URL

  Scenario: I don't see the permalink link from a SHA ref
    Given I visit project source page for "6d394385cf567f80a8fd85055db1ab4c5295806f"
    And I click on ".gitignore" file in repo
    Then I don't see the permalink link
304 305 306 307 308 309 310

  @javascript
  Scenario: I browse code with single quotes in the ref
    Given I switch ref to 'test'
    And I see the ref 'test' has been selected
    And I visit the 'test' tree
    Then I see the commit data
311 312 313 314 315 316

  @javascript
  Scenario: I browse code with a leading dot in the directory
    Given I switch ref to fix
    And I visit the fix tree
    Then I see the commit data for a directory with a leading dot
317 318 319 320 321 322

  Scenario: I browse LFS object
    Given I click on "files/lfs/lfs_object.iso" file in repo
    Then I should see download link and object size
    And I should not see lfs pointer details
    And I should see buttons for allowed commands
Stan Hu's avatar
Stan Hu committed
323 324 325 326 327 328 329 330 331 332

  @javascript
  Scenario: I preview an SVG file
    Given I click on "Upload file" link in repo
    And I upload a new SVG file
    And I fill the upload file commit message
    And I fill the new branch name
    And I click on "Upload file"
    Given I visit the SVG file
    Then I can see the new rendered SVG image