diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-02-25 10:58:24 +0200 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-02-25 10:58:24 +0200 |
commit | 9f20580ed7338e72ffeadff86c0d605a2802c957 (patch) | |
tree | 8c220cc461d98aa5d795eb4e19f8ecacb5330fcb /features | |
parent | e1c00d5300065514965c8912b68edabc9d5a1879 (diff) | |
parent | 90bdcac6b17c0da762959dcfae3521f3be4606b7 (diff) | |
download | gitlab-ce-9f20580ed7338e72ffeadff86c0d605a2802c957.tar.gz |
Merge pull request #6375 from cirosantilli/link-with-id
Blob and tree gfm links to anchors work.
Diffstat (limited to 'features')
-rw-r--r-- | features/project/source/markdown_render.feature | 38 | ||||
-rw-r--r-- | features/steps/project/project_markdown_render.rb | 75 |
2 files changed, 101 insertions, 12 deletions
diff --git a/features/project/source/markdown_render.feature b/features/project/source/markdown_render.feature index 42d6ebcb1cf..970a9e57864 100644 --- a/features/project/source/markdown_render.feature +++ b/features/project/source/markdown_render.feature @@ -4,9 +4,7 @@ Feature: Project markdown render And I own project "Delta" Given I visit project source page - # ------------------------------------------- - # README - # ------------------------------------------- + # Tree README Scenario: Tree view should have correct links in README Given I go directory which contains README file @@ -41,9 +39,7 @@ Feature: Project markdown render Then I should see rendered README which contains correct links And Header "Application details" should have correct id and link - # ------------------------------------------- - # File content - # ------------------------------------------- + # Blob Scenario: I navigate to doc directory to view documentation in master And I navigate to the doc/api/README @@ -61,9 +57,7 @@ Feature: Project markdown render And I navigate to the doc/api/README And Header "GitLab API" should have correct id and link - # ------------------------------------------- - # Markdown branch README - # ------------------------------------------- + # Markdown branch Scenario: I browse files from markdown branch When I visit markdown branch @@ -93,9 +87,31 @@ Feature: Project markdown render And I click on raketasks in doc/api/README Then I should see correct directory rendered for markdown branch - # ------------------------------------------- + Scenario: Tree markdown links view empty urls should have correct urls + When I visit markdown branch + Then The link with text "empty" should have url "tree/markdown" + When I visit markdown branch "README.md" blob + Then The link with text "empty" should have url "blob/markdown/README.md" + When I visit markdown branch "d" tree + Then The link with text "empty" should have url "tree/markdown/d" + When I visit markdown branch "d/README.md" blob + Then The link with text "empty" should have url "blob/markdown/d/README.md" + + # "ID" means "#id" on the tests below, because we are unable to escape the hash sign. + # which Spinach interprets as the start of a comment. + Scenario: All markdown links with ids should have correct urls + When I visit markdown branch + Then The link with text "ID" should have url "tree/markdownID" + Then The link with text "/ID" should have url "tree/markdownID" + Then The link with text "README.mdID" should have url "blob/markdown/README.mdID" + Then The link with text "d/README.mdID" should have url "blob/markdown/d/README.mdID" + When I visit markdown branch "README.md" blob + Then The link with text "ID" should have url "blob/markdown/README.mdID" + Then The link with text "/ID" should have url "blob/markdown/README.mdID" + Then The link with text "README.mdID" should have url "blob/markdown/README.mdID" + Then The link with text "d/README.mdID" should have url "blob/markdown/d/README.mdID" + # Wiki - # ------------------------------------------- Scenario: I create a wiki page with different links Given I go to wiki page diff --git a/features/steps/project/project_markdown_render.rb b/features/steps/project/project_markdown_render.rb index 89fbb7408c2..8fbf2753aa7 100644 --- a/features/steps/project/project_markdown_render.rb +++ b/features/steps/project/project_markdown_render.rb @@ -1,3 +1,6 @@ +# If you need to modify the existing seed repository for your tests, +# it is recommended that you make the changes on the `markdown` branch of the seed project repository, +# which should only be used by tests in this file. See `/spec/factories.rb#project` for more info. class Spinach::Features::ProjectMarkdownRender < Spinach::FeatureSteps include SharedAuthentication include SharedPaths @@ -50,7 +53,7 @@ class Spinach::Features::ProjectMarkdownRender < Spinach::FeatureSteps end Then 'I should see correct doc/api directory rendered' do - current_path.should == project_tree_path(@project, "master/doc/api/") + current_path.should == project_tree_path(@project, "master/doc/api") page.should have_content "README.md" page.should have_content "users.md" end @@ -64,6 +67,18 @@ class Spinach::Features::ProjectMarkdownRender < Spinach::FeatureSteps page.should have_content "bundle exec rake gitlab:env:info RAILS_ENV=production" end + And 'I click on link "empty" in the README' do + within('.readme-holder') do + click_link "empty" + end + end + + And 'I click on link "id" in the README' do + within('.readme-holder') do + click_link "#id" + end + end + And 'I navigate to the doc/api/README' do click_link "doc" click_link "api" @@ -90,10 +105,24 @@ class Spinach::Features::ProjectMarkdownRender < Spinach::FeatureSteps click_link "Rake tasks" end + # Markdown branch + When 'I visit markdown branch' do visit project_tree_path(@project, "markdown") end + When 'I visit markdown branch "README.md" blob' do + visit project_blob_path(@project, "markdown/README.md") + end + + When 'I visit markdown branch "d" tree' do + visit project_tree_path(@project, "markdown/d") + end + + When 'I visit markdown branch "d/README.md" blob' do + visit project_blob_path(@project, "markdown/d/README.md") + end + Then 'I should see files from repository in markdown branch' do current_path.should == project_tree_path(@project, "markdown") page.should have_content "Gemfile" @@ -124,6 +153,50 @@ class Spinach::Features::ProjectMarkdownRender < Spinach::FeatureSteps page.should have_content "Get a list of users." end + # Expected link contents + + Then 'The link with text "empty" should have url "tree/markdown"' do + find('a', text: /^empty$/)['href'] == current_host + project_tree_path(@project, "markdown") + end + + Then 'The link with text "empty" should have url "blob/markdown/README.md"' do + find('a', text: /^empty$/)['href'] == current_host + project_blob_path(@project, "markdown/README.md") + end + + Then 'The link with text "empty" should have url "tree/markdown/d"' do + find('a', text: /^empty$/)['href'] == current_host + project_tree_path(@project, "markdown/d") + end + + Then 'The link with text "empty" should have url "blob/markdown/d/README.md"' do + find('a', text: /^empty$/)['href'] == current_host + project_blob_path(@project, "markdown/d/README.md") + end + + Then 'The link with text "ID" should have url "tree/markdownID"' do + find('a', text: /^#id$/)['href'] == current_host + project_tree_path(@project, "markdown") + '#id' + end + + Then 'The link with text "/ID" should have url "tree/markdownID"' do + find('a', text: /^\/#id$/)['href'] == current_host + project_tree_path(@project, "markdown") + '#id' + end + + Then 'The link with text "README.mdID" should have url "blob/markdown/README.mdID"' do + find('a', text: /^README.md#id$/)['href'] == current_host + project_blob_path(@project, "markdown/README.md") + '#id' + end + + Then 'The link with text "d/README.mdID" should have url "blob/markdown/d/README.mdID"' do + find('a', text: /^d\/README.md#id$/)['href'] == current_host + project_blob_path(@project, "d/markdown/README.md") + '#id' + end + + Then 'The link with text "ID" should have url "blob/markdown/README.mdID"' do + find('a', text: /^#id$/)['href'] == current_host + project_blob_path(@project, "markdown/README.md") + '#id' + end + + Then 'The link with text "/ID" should have url "blob/markdown/README.mdID"' do + find('a', text: /^\/#id$/)['href'] == current_host + project_blob_path(@project, "markdown/README.md") + '#id' + end + + # Wiki + Given 'I go to wiki page' do click_link "Wiki" current_path.should == project_wiki_path(@project, "home") |