forked from tslocum/cview
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.8 KiB
69 lines
1.8 KiB
package cview |
|
|
|
import ( |
|
"testing" |
|
) |
|
|
|
const ( |
|
listTextA = "Hello, world!" |
|
listTextB = "Goodnight, moon!" |
|
listTextC = "Hello, Dolly!" |
|
) |
|
|
|
func TestList(t *testing.T) { |
|
t.Parallel() |
|
|
|
// Initialize |
|
|
|
l := NewList() |
|
if l.GetItemCount() != 0 { |
|
t.Errorf("failed to initialize List: expected item count 0, got %d", l.GetItemCount()) |
|
} else if l.GetCurrentItem() != 0 { |
|
t.Errorf("failed to initialize List: expected current item 0, got %d", l.GetCurrentItem()) |
|
} |
|
|
|
// Add item 0 |
|
|
|
l.AddItem(listTextA, listTextB, 'a', nil) |
|
if l.GetItemCount() != 1 { |
|
t.Errorf("failed to update List: expected item count 1, got %d", l.GetItemCount()) |
|
} else if l.GetCurrentItem() != 0 { |
|
t.Errorf("failed to update List: expected current item 0, got %d", l.GetCurrentItem()) |
|
} |
|
|
|
// Get item 0 text |
|
|
|
mainText, secondaryText := l.GetItemText(0) |
|
if mainText != listTextA { |
|
t.Errorf("failed to update List: expected main text %s, got %s", listTextA, mainText) |
|
} else if secondaryText != listTextB { |
|
t.Errorf("failed to update List: expected secondary text %s, got %s", listTextB, secondaryText) |
|
} |
|
|
|
// Add item 1 |
|
|
|
l.AddItem(listTextB, listTextC, 'a', nil) |
|
if l.GetItemCount() != 2 { |
|
t.Errorf("failed to update List: expected item count 1, got %v", l.GetItemCount()) |
|
} else if l.GetCurrentItem() != 0 { |
|
t.Errorf("failed to update List: expected current item 0, got %v", l.GetCurrentItem()) |
|
} |
|
|
|
// Get item 1 text |
|
|
|
mainText, secondaryText = l.GetItemText(1) |
|
if mainText != listTextB { |
|
t.Errorf("failed to update List: expected main text %s, got %s", listTextB, mainText) |
|
} else if secondaryText != listTextC { |
|
t.Errorf("failed to update List: expected secondary text %s, got %s", listTextC, secondaryText) |
|
} |
|
|
|
// Draw |
|
|
|
app, err := newTestApp(l) |
|
if err != nil { |
|
t.Errorf("failed to initialize Application: %s", err) |
|
} |
|
|
|
l.Draw(app.screen) |
|
}
|
|
|