summaryrefslogtreecommitdiffstats
path: root/pkg/integration/components/menu_asserter.go
blob: 42e31a610fe27dd16964ecd77b042a0bfff3eb89 (plain)
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
package components

type MenuAsserter struct {
	t               *TestDriver
	hasCheckedTitle bool
}

func (self *MenuAsserter) getViewAsserter() *View {
	return self.t.Views().Menu()
}

// asserts that the popup has the expected title
func (self *MenuAsserter) Title(expected *matcher) *MenuAsserter {
	self.getViewAsserter().Title(expected)

	self.hasCheckedTitle = true

	return self
}

func (self *MenuAsserter) Confirm() {
	self.checkNecessaryChecksCompleted()

	self.getViewAsserter().PressEnter()
}

func (self *MenuAsserter) Cancel() {
	self.checkNecessaryChecksCompleted()

	self.getViewAsserter().PressEscape()
}

func (self *MenuAsserter) Select(option *matcher) *MenuAsserter {
	self.getViewAsserter().NavigateToListItem(option)

	return self
}

func (self *MenuAsserter) checkNecessaryChecksCompleted() {
	if !self.hasCheckedTitle {
		self.t.Fail("You must check the title of a menu popup by calling Title() before calling Confirm()/Cancel().")
	}
}