URI: 
       Add menu sort tests - hugo - [fork] hugo port for 9front
  HTML git clone git@git.drkhsh.at/hugo.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
   DIR commit 75044c199f02b3aa6690d5f8e1884d6971a49246
   DIR parent 5995eaaa08a233ca763ebe6fe81d606dc9239dc2
  HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
       Date:   Sun,  7 Feb 2016 12:34:43 +0100
       
       Add menu sort tests
       
       Diffstat:
         M hugolib/menu.go                     |       3 ++-
         M hugolib/menu_test.go                |      26 ++++++++++++++++++++++++++
       
       2 files changed, 28 insertions(+), 1 deletion(-)
       ---
   DIR diff --git a/hugolib/menu.go b/hugolib/menu.go
       @@ -152,8 +152,9 @@ func (ms *MenuSorter) Swap(i, j int) { ms.menu[i], ms.menu[j] = ms.menu[j], ms.m
        // Less is part of sort.Interface. It is implemented by calling the "by" closure in the sorter.
        func (ms *MenuSorter) Less(i, j int) bool { return ms.by(ms.menu[i], ms.menu[j]) }
        
       -func (m Menu) Sort() {
       +func (m Menu) Sort() Menu {
                MenuEntryBy(defaultMenuEntrySort).Sort(m)
       +        return m
        }
        
        func (m Menu) Limit(n int) Menu {
   DIR diff --git a/hugolib/menu_test.go b/hugolib/menu_test.go
       @@ -497,6 +497,32 @@ func TestMenuLimit(t *testing.T) {
                assert.Equal(t, m, m.Limit(5))
        }
        
       +func TestMenuSortByN(t *testing.T) {
       +
       +        for i, this := range []struct {
       +                sortFunc   func(p Menu) Menu
       +                assertFunc func(p Menu) bool
       +        }{
       +                {(Menu).Sort, func(p Menu) bool { return p[0].Weight == 1 && p[1].Name == "nx" && p[2].Identifier == "ib" }},
       +                {(Menu).ByWeight, func(p Menu) bool { return p[0].Weight == 1 && p[1].Name == "nx" && p[2].Identifier == "ib" }},
       +                {(Menu).ByName, func(p Menu) bool { return p[0].Name == "na" }},
       +                {(Menu).Reverse, func(p Menu) bool { return p[0].Identifier == "ib" && p[len(p)-1].Identifier == "ia" }},
       +        } {
       +                menu := Menu{&MenuEntry{Weight: 3, Name: "nb", Identifier: "ia"},
       +                        &MenuEntry{Weight: 1, Name: "na", Identifier: "ic"},
       +                        &MenuEntry{Weight: 1, Name: "nx", Identifier: "ic"},
       +                        &MenuEntry{Weight: 2, Name: "nb", Identifier: "ix"},
       +                        &MenuEntry{Weight: 2, Name: "nb", Identifier: "ib"}}
       +
       +                sorted := this.sortFunc(menu)
       +
       +                if !this.assertFunc(sorted) {
       +                        t.Errorf("[%d] sort error", i)
       +                }
       +        }
       +
       +}
       +
        func TestHomeNodeMenu(t *testing.T) {
                viper.Reset()
                defer viper.Reset()