diff options
Diffstat (limited to 'actions/context_test.go')
| -rw-r--r-- | actions/context_test.go | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/actions/context_test.go b/actions/context_test.go new file mode 100644 index 0000000..671b065 --- /dev/null +++ b/actions/context_test.go @@ -0,0 +1,76 @@ +/* + * config_test.go - tests for creating new contexts + * + * Copyright 2017 Google Inc. + * Author: Joe Richey (joerichey@google.com) + * + * 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 actions + +import ( + "os" + "testing" + + "fscrypt/filesystem" +) + +var mountpoint = os.Getenv("TEST_FILESYSTEM_ROOT") + +// Makes a context using the testing locations for the filesystem and +// configuration file. +func makeContext() (*Context, error) { + if err := NewConfigFile(testTime, true); err != nil { + return nil, err + } + + mnt := filesystem.Mount{Path: mountpoint} + if err := mnt.Setup(); err != nil { + return nil, err + } + + return NewContextFromMountpoint(mountpoint) +} + +// Cleans up the testing config file and testing filesystem data. +func cleaupContext() { + os.RemoveAll(ConfigFileLocation) + mnt := filesystem.Mount{Path: mountpoint} + mnt.RemoveAllMetadata() +} + +// Tests that we can create a context +func TestSetupContext(t *testing.T) { + _, err := makeContext() + defer cleaupContext() + if err != nil { + t.Fatal(err) + } + +} + +// Tests that we cannot create a context without a config file. +func TestNoConfigFile(t *testing.T) { + mnt := filesystem.Mount{Path: mountpoint} + if err := mnt.Setup(); err != nil { + t.Fatal(err) + } + + _, err := NewContextFromMountpoint(mountpoint) + defer cleaupContext() + + if err == nil { + t.Error("should not be able to create context without config file") + } +} |