blob: fa224f754ee39db757f2899cef3193a5ccf73a8d [file] [log] [blame]
// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "cryptohome/mount_stack.h"
#include <base/files/file_path.h>
#include <gtest/gtest.h>
using base::FilePath;
namespace cryptohome {
TEST(MountStackTest, Correctness) {
const base::FilePath kSrc1("/foo_src");
const base::FilePath kDest1("/foo_dest");
const base::FilePath kSrc2("/bar_src");
const base::FilePath kDest2("/bar_dest");
MountStack stack;
stack.Push(kSrc1, kDest1);
stack.Push(kSrc2, kDest2);
EXPECT_TRUE(stack.ContainsDest(kDest1));
EXPECT_TRUE(stack.ContainsDest(kDest2));
EXPECT_FALSE(stack.ContainsDest(kSrc1));
EXPECT_FALSE(stack.ContainsDest(base::FilePath("/bogus")));
base::FilePath src_result, dest_result;
EXPECT_TRUE(stack.Pop(&src_result, &dest_result));
EXPECT_EQ(kSrc2, src_result);
EXPECT_EQ(kDest2, dest_result);
EXPECT_TRUE(stack.Pop(&src_result, &dest_result));
EXPECT_EQ(kSrc1, src_result);
EXPECT_EQ(kDest1, dest_result);
EXPECT_FALSE(stack.Pop(&src_result, &dest_result));
}
} // namespace cryptohome