diff options
Diffstat (limited to 'deploy/deployConfig_test.go')
-rw-r--r-- | deploy/deployConfig_test.go | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/deploy/deployConfig_test.go b/deploy/deployConfig_test.go new file mode 100644 index 000000000..d7aa9b438 --- /dev/null +++ b/deploy/deployConfig_test.go @@ -0,0 +1,99 @@ +// Copyright 2019 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 deploy + +import ( + "testing" + + "github.com/gohugoio/hugo/config" + "github.com/spf13/viper" + "github.com/stretchr/testify/require" +) + +func TestDecodeConfigFromTOML(t *testing.T) { + assert := require.New(t) + + tomlConfig := ` + +someOtherValue = "foo" + +[deployment] +[[deployment.targets]] +Name = "name1" +URL = "url1" +[[deployment.targets]] +name = "name2" +url = "url2" + +[[deployment.matchers]] +Pattern = "^pattern1$" +Cache-Control = "cachecontrol1" +Content-Encoding = "contentencoding1" +Content-Type = "contenttype1" +Gzip = true +Force = true + +[[deployment.matchers]] +pattern = "^pattern2$" +cache-control = "cachecontrol2" +content-encoding = "contentencoding2" +content-type = "contenttype2" +` + cfg, err := config.FromConfigString(tomlConfig, "toml") + assert.NoError(err) + + dcfg, err := decodeConfig(cfg) + assert.NoError(err) + + assert.Equal(2, len(dcfg.Targets)) + assert.Equal("name1", dcfg.Targets[0].Name) + assert.Equal("url1", dcfg.Targets[0].URL) + assert.Equal("name2", dcfg.Targets[1].Name) + assert.Equal("url2", dcfg.Targets[1].URL) + + assert.Equal(2, len(dcfg.Matchers)) + assert.Equal("^pattern1$", dcfg.Matchers[0].Pattern) + assert.Equal("cachecontrol1", dcfg.Matchers[0].CacheControl) + assert.Equal("contentencoding1", dcfg.Matchers[0].ContentEncoding) + assert.Equal("contenttype1", dcfg.Matchers[0].ContentType) + assert.True(dcfg.Matchers[0].Gzip) + assert.True(dcfg.Matchers[0].Force) +} + +func TestInvalidMatcherPattern(t *testing.T) { + assert := require.New(t) + + tomlConfig := ` + +someOtherValue = "foo" + +[deployment] +[[deployment.matchers]] +Pattern = "[" # invalid regular expression +` + cfg, err := config.FromConfigString(tomlConfig, "toml") + assert.NoError(err) + + _, err = decodeConfig(cfg) + assert.Error(err) +} + +func TestDecodeConfigDefault(t *testing.T) { + assert := require.New(t) + + dcfg, err := decodeConfig(viper.New()) + assert.NoError(err) + assert.Equal(0, len(dcfg.Targets)) + assert.Equal(0, len(dcfg.Matchers)) +} |