File size: 1,594 Bytes
530729e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package menu

import (
	"testing"

	"github.com/magiconair/properties/assert"
)

func TestMenu_AddMaxOrder(t *testing.T) {
	menus := Menu{
		MaxOrder: 0,
	}
	menus.AddMaxOrder()
	assert.Equal(t, menus.MaxOrder, int64(1))
}

func TestMenu_SetMaxOrder(t *testing.T) {
	menus := Menu{
		MaxOrder: 0,
	}
	menus.SetMaxOrder(2)
	assert.Equal(t, menus.MaxOrder, int64(2))
}

func TestMenu_SetActiveClass(t *testing.T) {
	menus := Menu{
		List: []Item{
			{
				Name: "item1",
				ID:   "1",
				Url:  "/item1",
				Icon: "icon",
			}, {
				Name: "item2",
				ID:   "2",
				Url:  "/item2",
				Icon: "icon",
			}, {
				Name: "item3",
				ID:   "3",
				Url:  "/item3",
				Icon: "icon",
			}, {
				Name: "item4",
				ID:   "4",
				Url:  "/item4",
				Icon: "icon",
				ChildrenList: []Item{
					{
						Name: "item5",
						ID:   "5",
						Url:  "/item5",
						Icon: "icon",
					}, {
						Name: "item6",
						ID:   "6",
						Url:  "/item6",
						Icon: "icon",
					},
				},
			},
		},
		Options:  []map[string]string{},
		MaxOrder: 0,
	}

	menus.SetActiveClass("/item3")

	assert.Equal(t, menus.List[0].Active, "")
	assert.Equal(t, menus.List[1].Active, "")
	assert.Equal(t, menus.List[2].Active, "active")
	assert.Equal(t, menus.List[3].Active, "")

	menus.SetActiveClass("/item5")

	assert.Equal(t, menus.List[0].Active, "")
	assert.Equal(t, menus.List[1].Active, "")
	assert.Equal(t, menus.List[2].Active, "")
	assert.Equal(t, menus.List[3].Active, "active")
	assert.Equal(t, menus.List[3].ChildrenList[0].Active, "active")
	assert.Equal(t, menus.List[3].ChildrenList[1].Active, "")
}