diff --git a/pkg/util/strings/escape_test.go b/pkg/util/strings/escape_test.go new file mode 100644 index 00000000000..4c92f638a46 --- /dev/null +++ b/pkg/util/strings/escape_test.go @@ -0,0 +1,63 @@ +/* +Copyright 2016 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package strings + +import ( + "testing" +) + +func TestEscapePluginName(t *testing.T) { + testCases := []struct { + input string + output string + }{ + {"kubernetes.io/blah", "kubernetes.io~blah"}, + {"blah/blerg/borg", "blah~blerg~borg"}, + {"kubernetes.io", "kubernetes.io"}, + } + for i, tc := range testCases { + escapee := EscapePluginName(tc.input) + if escapee != tc.output { + t.Errorf("case[%d]: expected (%q), got (%q)", i, tc.output, escapee) + } + original := UnescapePluginName(escapee) + if original != tc.input { + t.Errorf("case[%d]: expected (%q), got (%q)", i, tc.input, original) + } + } +} + +func TestEscapeQualifiedNameForDisk(t *testing.T) { + testCases := []struct { + input string + output string + }{ + {"kubernetes.io/blah", "kubernetes.io~blah"}, + {"blah/blerg/borg", "blah~blerg~borg"}, + {"kubernetes.io", "kubernetes.io"}, + } + for i, tc := range testCases { + escapee := EscapeQualifiedNameForDisk(tc.input) + if escapee != tc.output { + t.Errorf("case[%d]: expected (%q), got (%q)", i, tc.output, escapee) + } + original := UnescapeQualifiedNameForDisk(escapee) + if original != tc.input { + t.Errorf("case[%d]: expected (%q), got (%q)", i, tc.input, original) + } + } +} diff --git a/pkg/util/strings/strings_test.go b/pkg/util/strings/strings_test.go index 0e87fee7544..13c72599565 100644 --- a/pkg/util/strings/strings_test.go +++ b/pkg/util/strings/strings_test.go @@ -36,6 +36,7 @@ func TestSplitQualifiedName(t *testing.T) { } } } + func TestJoinQualifiedName(t *testing.T) { testCases := []struct { input []string @@ -52,3 +53,21 @@ func TestJoinQualifiedName(t *testing.T) { } } } + +func TestShortenString(t *testing.T) { + testCases := []struct { + input string + out_len int + output string + }{ + {"kubernetes.io", 5, "kuber"}, + {"blah", 34, "blah"}, + {"kubernetes.io", 13, "kubernetes.io"}, + } + for i, tc := range testCases { + res := ShortenString(tc.input, tc.out_len) + if res != tc.output { + t.Errorf("case[%d]: expected %q, got %q", i, tc.output, res) + } + } +}