package config import ( "strings" "testing" ) func TestCascadeOverflowInherited(t *testing.T) { c, w := parseString(t, "layout.overflow = cascade\nlayout.DP-1.max-columns = 3\nworkspace.work.max-columns = 2\nbind.cmd+w = workspace work\n") if len(w) != 0 { t.Fatalf("warnings=%v", w) } out := c.Layout.Outputs[0].LayoutRules.Over(c.Layout.LayoutRules) ws := c.Workspaces[0].LayoutRules.Over(out) if out.Overflow != "cascade" || ws.Overflow != "cascade" { t.Fatalf("output=%q workspace=%q, want cascade", out.Overflow, ws.Overflow) } _, warnings, err := Parse(strings.NewReader("layout.overflow = unknown\n")) if err != nil || len(warnings) != 1 || !strings.Contains(warnings[0].Msg, "must be scroll, fixed or cascade") { t.Fatalf("invalid overflow diagnostic: %v, %v", warnings, err) } } // Column widths are cells in every overflow, cascade included. func TestCascadeColumnWidthsInCells(t *testing.T) { c, w := parseString(t, "workspace.work.overflow = cascade\nworkspace.work.column.1 = 2, foot\nbind.cmd+w = workspace work\n") if len(w) != 0 || c.Workspaces[0].Slots[0].Cells != 2 { t.Fatalf("warnings=%v %+v", w, c.Workspaces) } _, w = parseString(t, "workspace.work.overflow = cascade\nworkspace.work.column.1 = 50%, foot\nbind.cmd+w = workspace work\n") if len(w) != 1 || !strings.Contains(w[0].Msg, "cells") { t.Fatalf("warnings=%v", w) } }