diff options
author | Ciro Santillli <ciro.santilli@gmail.com> | 2014-02-20 15:09:30 +0100 |
---|---|---|
committer | Ciro Santillli <ciro.santilli@gmail.com> | 2014-02-23 09:47:52 +0100 |
commit | 90bdcac6b17c0da762959dcfae3521f3be4606b7 (patch) | |
tree | b4b561f70f4ae53a84baf7f086c2221a2249aaa7 /features | |
parent | 499a118590e875596974e522aecf61bdc05fe0f2 (diff) | |
download | gitlab-ce-90bdcac6b17c0da762959dcfae3521f3be4606b7.tar.gz |
Blob and tree gfm links to anchors work.
Fixes #6046
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") |