From 1e74dbb93764e46d71199a44ae12d4b82bc0c0b2 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Fri, 12 Aug 2016 01:16:59 +0900 Subject: [PATCH] :hidden property of previous --preview-window should be cleared Fix #636. Patch suggested by @edi9999. --- src/options.go | 1 + src/options_test.go | 42 +++++++++++++++++++++++++++++++++++------- 2 files changed, 36 insertions(+), 7 deletions(-) diff --git a/src/options.go b/src/options.go index 2a724274..31ad4971 100644 --- a/src/options.go +++ b/src/options.go @@ -724,6 +724,7 @@ func parseSize(str string, maxPercent float64, label string) sizeSpec { func parsePreviewWindow(opts *previewOpts, input string) { layout := input + opts.hidden = false if strings.HasSuffix(layout, ":hidden") { opts.hidden = true layout = strings.TrimSuffix(layout, ":hidden") diff --git a/src/options_test.go b/src/options_test.go index f3e62f8e..eb1dfa9c 100644 --- a/src/options_test.go +++ b/src/options_test.go @@ -352,14 +352,14 @@ func TestDefaultCtrlNP(t *testing.T) { check([]string{hist, "--bind=ctrl-p:accept"}, curses.CtrlP, actAccept) } -func TestToggle(t *testing.T) { - optsFor := func(words ...string) *Options { - opts := defaultOptions() - parseOptions(opts, words) - postProcessOptions(opts) - return opts - } +func optsFor(words ...string) *Options { + opts := defaultOptions() + parseOptions(opts, words) + postProcessOptions(opts) + return opts +} +func TestToggle(t *testing.T) { opts := optsFor() if opts.ToggleSort { t.Error() @@ -375,3 +375,31 @@ func TestToggle(t *testing.T) { t.Error() } } + +func TestPreviewOpts(t *testing.T) { + opts := optsFor() + if !(opts.Preview.command == "" && + opts.Preview.hidden == false && + opts.Preview.position == posRight && + opts.Preview.size.percent == true && + opts.Preview.size.size == 50) { + t.Error() + } + opts = optsFor("--preview", "cat {}", "--preview-window=left:15:hidden") + if !(opts.Preview.command == "cat {}" && + opts.Preview.hidden == true && + opts.Preview.position == posLeft && + opts.Preview.size.percent == false && + opts.Preview.size.size == 15+2) { + t.Error(opts.Preview) + } + + opts = optsFor("--preview-window=left:15:hidden", "--preview-window=down") + if !(opts.Preview.command == "" && + opts.Preview.hidden == false && + opts.Preview.position == posDown && + opts.Preview.size.percent == true && + opts.Preview.size.size == 50) { + t.Error(opts.Preview) + } +}