1package core
2
3import (
4 "testing"
5
6 "github.com/bnema/neferwl/internal/ports"
7)
8
9// Tiled windows report their column and row; stashed windows and native
10// floats report 0, 0.
11func TestStateColumnRow(t *testing.T) {
12 cfg := ports.Config{}
13 cfg.Keyboard.CmdKey = "super"
14 cfg.Layout.MaxColumns = 1
15 c, err := New(cfg, Channels{Commands: make(chan ports.ClientCommand, 16), Scenes: make(chan []ports.Scene, 1)}, Options{})
16 if err != nil {
17 t.Fatal(err)
18 }
19 c.addScreen(ports.OutputInfo{Name: "OUT-1", Width: 400, Height: 300})
20 w := c.cur().mon.Current()
21 w.Columns = []Column{{Windows: []WindowID{1}}, {Windows: []WindowID{65, 66}}, {Windows: []WindowID{2}}}
22 w.Stash = []Float{{ID: 7}}
23 w.Floats = []Float{{ID: 8}}
24 want := map[WindowID][2]int{1: {1, 1}, 65: {2, 1}, 66: {2, 2}, 2: {3, 1}, 7: {0, 0}, 8: {0, 0}}
25 got := map[WindowID][2]int{}
26 for _, s := range c.state().Windows {
27 got[s.ID] = [2]int{s.Column, s.Row}
28 }
29 for id, cr := range want {
30 if g, ok := got[id]; !ok || g != cr {
31 t.Errorf("window %d: column,row %v, want %v", id, g, cr)
32 }
33 }
34}