Fix buggy Menu.Limit()
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 6 Feb 2016 21:53:59 +0000 (22:53 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 6 Feb 2016 21:53:59 +0000 (22:53 +0100)
hugolib/menu.go
hugolib/menu_test.go

index 4e3970fda94702c9f7980a8ed3d97e4519764959..2e2670b349f05a334b9275944c1cb401e902cfcb 100644 (file)
@@ -157,7 +157,7 @@ func (m Menu) Sort() {
 }
 
 func (m Menu) Limit(n int) Menu {
-       if len(m) < n {
+       if len(m) > n {
                return m[0:n]
        }
        return m
index 33fa0a25feb9a8d241c3990b78115b2ecb8bc623..5687454c22efb1621738d4ad2030134dbc90ad91 100644 (file)
@@ -480,6 +480,23 @@ func TestTaxonomyNodeMenu(t *testing.T) {
        }
 }
 
+func TestMenuLimit(t *testing.T) {
+       viper.Reset()
+       defer viper.Reset()
+
+       s := setupMenuTests(t, MENU_PAGE_SOURCES)
+       m := *s.Menus["main"]
+
+       // main menu has 4 entries
+       firstTwo := m.Limit(2)
+       assert.Equal(t, 2, len(firstTwo))
+       for i := 0; i < 2; i++ {
+               assert.Equal(t, m[i], firstTwo[i])
+       }
+       assert.Equal(t, m, m.Limit(4))
+       assert.Equal(t, m, m.Limit(5))
+}
+
 func TestHomeNodeMenu(t *testing.T) {
        viper.Reset()
        defer viper.Reset()