summaryrefslogtreecommitdiff
path: root/src/terminal_test.go
diff options
context:
space:
mode:
authorZDNoFYVe <5420669+ZDNoFYVe@users.noreply.github.com>2018-03-30 02:47:46 +0000
committerJunegunn Choi <junegunn.c@gmail.com>2018-03-30 11:47:46 +0900
commit43345fb642399c43f25ccae94cec0bef773bf437 (patch)
treeb4adc3aee1ea1e517e49e7066ea6cc2534bc3f90 /src/terminal_test.go
parent9ff33814eadcf2be766d0bfe7f3f87f8645b6b5e (diff)
downloadfzf-43345fb642399c43f25ccae94cec0bef773bf437.tar.gz
Implement flag for preserving whitespace around field (#1242)
Diffstat (limited to 'src/terminal_test.go')
-rw-r--r--src/terminal_test.go31
1 files changed, 29 insertions, 2 deletions
diff --git a/src/terminal_test.go b/src/terminal_test.go
index 60f2b1ad..62b20c45 100644
--- a/src/terminal_test.go
+++ b/src/terminal_test.go
@@ -21,6 +21,9 @@ func TestReplacePlaceholder(t *testing.T) {
newItem("foo'bar \x1b[31mbaz\x1b[m"),
newItem("FOO'BAR \x1b[31mBAZ\x1b[m")}
+ delim := "'"
+ var regex *regexp.Regexp
+
var result string
check := func(expected string) {
if result != expected {
@@ -72,6 +75,31 @@ func TestReplacePlaceholder(t *testing.T) {
result = replacePlaceholder("echo {1}/{2}/{-1}/{-2}/{..}/{n.t}/\\{}/\\{1}/\\{q}/{3}", true, Delimiter{}, true, "query", items2)
check("echo 'foo'\\''bar' 'FOO'\\''BAR'/'baz' 'BAZ'/'baz' 'BAZ'/'foo'\\''bar' 'FOO'\\''BAR'/'foo'\\''bar baz' 'FOO'\\''BAR BAZ'/{n.t}/{}/{1}/{q}/'' ''")
+ // Whitespace preserving flag with "'" delimiter
+ result = replacePlaceholder("echo {s1}", true, Delimiter{str: &delim}, false, "query", items1)
+ check("echo ' foo'")
+
+ result = replacePlaceholder("echo {s2}", true, Delimiter{str: &delim}, false, "query", items1)
+ check("echo 'bar baz'")
+
+ result = replacePlaceholder("echo {s}", true, Delimiter{str: &delim}, false, "query", items1)
+ check("echo ' foo'\\''bar baz'")
+
+ result = replacePlaceholder("echo {s..}", true, Delimiter{str: &delim}, false, "query", items1)
+ check("echo ' foo'\\''bar baz'")
+
+ // Whitespace preserving flag with regex delimiter
+ regex = regexp.MustCompile("\\w+")
+
+ result = replacePlaceholder("echo {s1}", true, Delimiter{regex: regex}, false, "query", items1)
+ check("echo ' '")
+
+ result = replacePlaceholder("echo {s2}", true, Delimiter{regex: regex}, false, "query", items1)
+ check("echo ''\\'''")
+
+ result = replacePlaceholder("echo {s3}", true, Delimiter{regex: regex}, false, "query", items1)
+ check("echo ' '")
+
// No match
result = replacePlaceholder("echo {}/{+}", true, Delimiter{}, false, "query", []*Item{nil, nil})
check("echo /")
@@ -81,12 +109,11 @@ func TestReplacePlaceholder(t *testing.T) {
check("echo /' foo'\\''bar baz'")
// String delimiter
- delim := "'"
result = replacePlaceholder("echo {}/{1}/{2}", true, Delimiter{str: &delim}, false, "query", items1)
check("echo ' foo'\\''bar baz'/'foo'/'bar baz'")
// Regex delimiter
- regex := regexp.MustCompile("[oa]+")
+ regex = regexp.MustCompile("[oa]+")
// foo'bar baz
result = replacePlaceholder("echo {}/{1}/{3}/{2..3}", true, Delimiter{regex: regex}, false, "query", items1)
check("echo ' foo'\\''bar baz'/'f'/'r b'/''\\''bar b'")