Commit e649ea2fc5e765f11579ad9aa8e90e69764bd590

Authored by Marin Jankovski
1 parent ace9ff4a

Links in Readme in tree view.

app/helpers/gitlab_markdown_helper.rb
@@ -129,11 +129,18 @@ module GitlabMarkdownHelper @@ -129,11 +129,18 @@ module GitlabMarkdownHelper
129 # Covering a special case, when the link is referencing file in the same directory eg: 129 # Covering a special case, when the link is referencing file in the same directory eg:
130 # If we are at doc/api/README.md and the README.md contains relative links like [Users](users.md) 130 # If we are at doc/api/README.md and the README.md contains relative links like [Users](users.md)
131 # this takes the request path(doc/api/README.md), and replaces the README.md with users.md so the path looks like doc/api/users.md 131 # this takes the request path(doc/api/README.md), and replaces the README.md with users.md so the path looks like doc/api/users.md
  132 + # If we are at doc/api and the README.md shown in below the tree view
  133 + # this takes the rquest path(doc/api) and adds users.md so the path looks like doc/api/users.md
132 def build_nested_path(path, request_path) 134 def build_nested_path(path, request_path)
133 return path unless request_path 135 return path unless request_path
134 - base = request_path.split("/")  
135 - base.pop  
136 - (base + [path]).join("/") 136 + if local_path(request_path) == "tree"
  137 + base = request_path.split("/").push(path)
  138 + base.join("/")
  139 + else
  140 + base = request_path.split("/")
  141 + base.pop
  142 + base.push(path).join("/")
  143 + end
137 end 144 end
138 145
139 def file_exists?(path) 146 def file_exists?(path)
features/project/source/markdown_render.feature
@@ -72,4 +72,9 @@ Feature: Project markdown render @@ -72,4 +72,9 @@ Feature: Project markdown render
72 Scenario: I visit the help page with markdown 72 Scenario: I visit the help page with markdown
73 Given I visit to the help page 73 Given I visit to the help page
74 And I select a page with markdown 74 And I select a page with markdown
75 - Then I should see a help page with markdown  
76 \ No newline at end of file 75 \ No newline at end of file
  76 + Then I should see a help page with markdown
  77 +
  78 + Scenario: Tree view should have correct links in README
  79 + Given I go directory which contains README file
  80 + And I click on a relative link in README
  81 + Then I should see the correct markdown
features/steps/project/project_markdown_render.rb
@@ -162,4 +162,18 @@ class Spinach::Features::ProjectMarkdownRender < Spinach::FeatureSteps @@ -162,4 +162,18 @@ class Spinach::Features::ProjectMarkdownRender < Spinach::FeatureSteps
162 Then 'I should see a help page with markdown' do 162 Then 'I should see a help page with markdown' do
163 page.should have_content "GitLab provides some specific rake tasks to enable special features or perform maintenance tasks" 163 page.should have_content "GitLab provides some specific rake tasks to enable special features or perform maintenance tasks"
164 end 164 end
165 -end  
166 \ No newline at end of file 165 \ No newline at end of file
  166 +
  167 + Given 'I go directory which contains README file' do
  168 + visit project_tree_path(@project, "master/doc/api")
  169 + current_path.should == project_tree_path(@project, "master/doc/api")
  170 + end
  171 +
  172 + And 'I click on a relative link in README' do
  173 + click_link "Users"
  174 + end
  175 +
  176 + Then 'I should see the correct markdown' do
  177 + current_path.should == project_blob_path(@project, "master/doc/api/users.md")
  178 + page.should have_content "List users"
  179 + end
  180 +end