mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-24 21:56:05 +02:00
@@ -13,13 +13,12 @@
|
||||
|
||||
package page
|
||||
|
||||
// Prev returns the previous page reletive to the given
|
||||
func (p Pages) Prev(cur Page) Page {
|
||||
// Next returns the next page reletive to the given
|
||||
func (p Pages) Next(cur Page) Page {
|
||||
for x, c := range p {
|
||||
if c.Eq(cur) {
|
||||
if x == 0 {
|
||||
// TODO(bep) consider return nil here to get it line with the other Prevs
|
||||
return p[len(p)-1]
|
||||
return nil
|
||||
}
|
||||
return p[x-1]
|
||||
}
|
||||
@@ -27,15 +26,14 @@ func (p Pages) Prev(cur Page) Page {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Next returns the next page reletive to the given
|
||||
func (p Pages) Next(cur Page) Page {
|
||||
// Prev returns the previous page reletive to the given
|
||||
func (p Pages) Prev(cur Page) Page {
|
||||
for x, c := range p {
|
||||
if c.Eq(cur) {
|
||||
if x < len(p)-1 {
|
||||
return p[x+1]
|
||||
}
|
||||
// TODO(bep) consider return nil here to get it line with the other Nexts
|
||||
return p[0]
|
||||
return nil
|
||||
}
|
||||
}
|
||||
return nil
|
||||
|
@@ -38,18 +38,20 @@ func TestPrev(t *testing.T) {
|
||||
t.Parallel()
|
||||
c := qt.New(t)
|
||||
pages := preparePageGroupTestPages(t)
|
||||
c.Assert(pages[4], qt.Equals, pages.Prev(pages[0]))
|
||||
c.Assert(pages[0], qt.Equals, pages.Prev(pages[1]))
|
||||
c.Assert(pages[3], qt.Equals, pages.Prev(pages[4]))
|
||||
|
||||
c.Assert(pages.Prev(pages[3]), qt.Equals, pages[4])
|
||||
c.Assert(pages.Prev(pages[1]), qt.Equals, pages[2])
|
||||
c.Assert(pages.Prev(pages[4]), qt.IsNil)
|
||||
}
|
||||
|
||||
func TestNext(t *testing.T) {
|
||||
t.Parallel()
|
||||
c := qt.New(t)
|
||||
pages := preparePageGroupTestPages(t)
|
||||
c.Assert(pages[1], qt.Equals, pages.Next(pages[0]))
|
||||
c.Assert(pages[2], qt.Equals, pages.Next(pages[1]))
|
||||
c.Assert(pages[0], qt.Equals, pages.Next(pages[4]))
|
||||
|
||||
c.Assert(pages.Next(pages[0]), qt.IsNil)
|
||||
c.Assert(pages.Next(pages[1]), qt.Equals, pages[0])
|
||||
c.Assert(pages.Next(pages[4]), qt.Equals, pages[3])
|
||||
}
|
||||
|
||||
func prepareWeightedPagesPrevNext(t *testing.T) WeightedPages {
|
||||
@@ -72,16 +74,20 @@ func TestWeightedPagesPrev(t *testing.T) {
|
||||
t.Parallel()
|
||||
c := qt.New(t)
|
||||
w := prepareWeightedPagesPrevNext(t)
|
||||
c.Assert(w[4].Page, qt.Equals, w.Prev(w[0].Page))
|
||||
c.Assert(w[0].Page, qt.Equals, w.Prev(w[1].Page))
|
||||
c.Assert(w[3].Page, qt.Equals, w.Prev(w[4].Page))
|
||||
|
||||
c.Assert(w.Prev(w[0].Page), qt.Equals, w[1].Page)
|
||||
c.Assert(w.Prev(w[1].Page), qt.Equals, w[2].Page)
|
||||
c.Assert(w.Prev(w[4].Page), qt.IsNil)
|
||||
|
||||
}
|
||||
|
||||
func TestWeightedPagesNext(t *testing.T) {
|
||||
t.Parallel()
|
||||
c := qt.New(t)
|
||||
w := prepareWeightedPagesPrevNext(t)
|
||||
c.Assert(w[1].Page, qt.Equals, w.Next(w[0].Page))
|
||||
c.Assert(w[2].Page, qt.Equals, w.Next(w[1].Page))
|
||||
c.Assert(w[0].Page, qt.Equals, w.Next(w[4].Page))
|
||||
|
||||
c.Assert(w.Next(w[0].Page), qt.IsNil)
|
||||
c.Assert(w.Next(w[1].Page), qt.Equals, w[0].Page)
|
||||
c.Assert(w.Next(w[4].Page), qt.Equals, w[3].Page)
|
||||
|
||||
}
|
||||
|
@@ -95,13 +95,13 @@ func (wp WeightedPages) Pages() Pages {
|
||||
return pages
|
||||
}
|
||||
|
||||
// Prev returns the previous Page relative to the given Page in
|
||||
// Next returns the next Page relative to the given Page in
|
||||
// this weighted page set.
|
||||
func (wp WeightedPages) Prev(cur Page) Page {
|
||||
func (wp WeightedPages) Next(cur Page) Page {
|
||||
for x, c := range wp {
|
||||
if c.Page == cur {
|
||||
if x == 0 {
|
||||
return wp[len(wp)-1].Page
|
||||
return nil
|
||||
}
|
||||
return wp[x-1].Page
|
||||
}
|
||||
@@ -109,15 +109,15 @@ func (wp WeightedPages) Prev(cur Page) Page {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Next returns the next Page relative to the given Page in
|
||||
// Prev returns the previous Page relative to the given Page in
|
||||
// this weighted page set.
|
||||
func (wp WeightedPages) Next(cur Page) Page {
|
||||
func (wp WeightedPages) Prev(cur Page) Page {
|
||||
for x, c := range wp {
|
||||
if c.Page == cur {
|
||||
if x < len(wp)-1 {
|
||||
return wp[x+1].Page
|
||||
}
|
||||
return wp[0].Page
|
||||
return nil
|
||||
}
|
||||
}
|
||||
return nil
|
||||
|
Reference in New Issue
Block a user