# ~*~ encoding: utf-8 ~*~ require File.expand_path(File.join(File.dirname(__FILE__), 'helper')) require File.expand_path '../../lib/gollum/views/pages', __FILE__ FakePageResult = Struct.new(:path) do def name File.basename(path, File.extname(path)).gsub("-", " ") end def escaped_url_path CGI.escape(path).gsub(/\..+$/, "").gsub("%2F", "/") end def format true end end FakeFileResult = Struct.new(:path) do def name File.basename(path).gsub("-", " ") end def escaped_url_path result = path.sub(/\/[^\/]+$/, '/') CGI.escape(result).gsub("%2F", "/") end end context "Precious::Views::Pages" do setup do @page = Precious::Views::Pages.new end test "breadcrumb" do @page.instance_variable_set("@path", "Mordor/Eye-Of-Sauron/Saruman") @page.instance_variable_set("@base_url", "") assert_equal 'Home / Mordor / Eye-Of-Sauron / Saruman', @page.breadcrumb end test "breadcrumb with no path" do assert_equal 'Home', @page.breadcrumb end test "folders first" do @page.instance_variable_set("@base_url", "") results = [FakePageResult.new("Gondor/Bromir.md"), FakePageResult.new("Hobbit.md"), FakePageResult.new("Home.md"), FakePageResult.new("Mordor/Eye-Of-Sauron.md"), FakePageResult.new("Mordor/todo.md"), FakePageResult.new("Rivendell/Elrond.md"), FakePageResult.new("My-Precious.md"), FakePageResult.new("Zamin.md"), FakePageResult.new("Samwise-Gamgee.md"), FakePageResult.new("roast-mutton.md"), FakePageResult.new("Bilbo-Baggins.md")] @page.instance_variable_set("@results", results) assert_equal %{