diff options
Diffstat (limited to 'hugolib/paths/baseURL_test.go')
-rw-r--r-- | hugolib/paths/baseURL_test.go | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/hugolib/paths/baseURL_test.go b/hugolib/paths/baseURL_test.go new file mode 100644 index 000000000..af1d2e38d --- /dev/null +++ b/hugolib/paths/baseURL_test.go @@ -0,0 +1,61 @@ +// Copyright 2018 The Hugo Authors. All rights reserved. +// +// 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 paths + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestBaseURL(t *testing.T) { + b, err := newBaseURLFromString("http://example.com") + require.NoError(t, err) + require.Equal(t, "http://example.com", b.String()) + + p, err := b.WithProtocol("webcal://") + require.NoError(t, err) + require.Equal(t, "webcal://example.com", p) + + p, err = b.WithProtocol("webcal") + require.NoError(t, err) + require.Equal(t, "webcal://example.com", p) + + _, err = b.WithProtocol("mailto:") + require.Error(t, err) + + b, err = newBaseURLFromString("mailto:hugo@rules.com") + require.NoError(t, err) + require.Equal(t, "mailto:hugo@rules.com", b.String()) + + // These are pretty constructed + p, err = b.WithProtocol("webcal") + require.NoError(t, err) + require.Equal(t, "webcal:hugo@rules.com", p) + + p, err = b.WithProtocol("webcal://") + require.NoError(t, err) + require.Equal(t, "webcal://hugo@rules.com", p) + + // Test with "non-URLs". Some people will try to use these as a way to get + // relative URLs working etc. + b, err = newBaseURLFromString("/") + require.NoError(t, err) + require.Equal(t, "/", b.String()) + + b, err = newBaseURLFromString("") + require.NoError(t, err) + require.Equal(t, "", b.String()) + +} |