diff options
author | Boaz Shuster <ripcurld.github@gmail.com> | 2018-04-10 09:29:42 +0000 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2018-04-10 14:05:25 +0000 |
commit | 864b9c06c08b1c1649c5b845029404f7c275408d (patch) | |
tree | ce0a4c2fa296dfd2787e12d6a7bbc5389d137e19 /cmd/podman/formats/formats_test.go | |
parent | 1700f2b2381d9665810ed4764d0fe357150c5978 (diff) | |
download | podman-864b9c06c08b1c1649c5b845029404f7c275408d.tar.gz podman-864b9c06c08b1c1649c5b845029404f7c275408d.tar.bz2 podman-864b9c06c08b1c1649c5b845029404f7c275408d.zip |
Unescape characters in inspect JSON format output
This patch changes the way the inspect command output is displayed
on the screen when the format is set to JSON.
Note: if the output is redirected to a file the output is *not*
escaped.
For example, before this commit if you run:
$ sudo podman inspect --format "json" daveimg
[
{
...
"Author": "Dave \u003cdave@corp.io\u003e",
}
...
]
with this patch the output will be:
[
{
...
"Author": "Dave <dave@corp.io>",
}
...
]
Signed-off-by: Boaz Shuster <ripcurld.github@gmail.com>
Closes: #602
Approved by: mheon
Diffstat (limited to 'cmd/podman/formats/formats_test.go')
-rw-r--r-- | cmd/podman/formats/formats_test.go | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/cmd/podman/formats/formats_test.go b/cmd/podman/formats/formats_test.go new file mode 100644 index 000000000..fc7f01f93 --- /dev/null +++ b/cmd/podman/formats/formats_test.go @@ -0,0 +1,42 @@ +package formats + +import ( + "bytes" + "strings" + "testing" + + "github.com/projectatomic/libpod/pkg/inspect" +) + +func TestSetJSONFormatEncoder(t *testing.T) { + tt := []struct { + name string + imageData *inspect.ImageData + expected string + isTerminal bool + }{ + { + name: "HTML tags are not escaped", + imageData: &inspect.ImageData{Author: "dave <dave@corp.io>"}, + expected: `"Author": "dave <dave@corp.io>"`, + isTerminal: true, + }, + { + name: "HTML tags are escaped", + imageData: &inspect.ImageData{Author: "dave <dave@corp.io>"}, + expected: `"Author": "dave \u003cdave@corp.io\u003e"`, + isTerminal: false, + }, + } + + for _, tc := range tt { + buf := bytes.NewBuffer(nil) + enc := setJSONFormatEncoder(tc.isTerminal, buf) + if err := enc.Encode(tc.imageData); err != nil { + t.Errorf("test %#v failed encoding: %s", tc.name, err) + } + if !strings.Contains(buf.String(), tc.expected) { + t.Errorf("test %#v expected output to contain %#v. Output:\n%v\n", tc.name, tc.expected, buf.String()) + } + } +} |