blob: 487ad560e753a7cf40b53b7f639720856aab4ea7 [file] [log] [blame]
Ben Chancb517732012-04-11 17:00:00 -07001// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
Ben Chan8dcede82011-07-25 20:56:13 -07002// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Ben Chan5ccd9fe2013-11-13 18:28:27 -08005#include "cros-disks/archive_manager.h"
Ben Chan8dcede82011-07-25 20:56:13 -07006
7#include <gtest/gtest.h>
8
François Degrosb58376b2019-07-15 14:10:50 +10009namespace cros_disks {
Ben Chan8dcede82011-07-25 20:56:13 -070010
François Degros262deb92020-06-19 16:24:39 +100011TEST(ArchiveManagerTest, IsInAllowedFolder) {
12 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder("/dev/sda1"));
13 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder("/devices/block/sda/sda1"));
14 EXPECT_FALSE(
15 ArchiveManager::IsInAllowedFolder("/sys/devices/block/sda/sda1"));
16 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder("/media/removable/foo"));
17 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder("/media/removable/foo/"));
18 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder("/media/archive/foo"));
19 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder("/media/archive/foo/"));
20 EXPECT_TRUE(ArchiveManager::IsInAllowedFolder("/media/removable/foo/bar"));
Ben Chande0e3f62017-09-26 06:28:39 -070021 EXPECT_TRUE(
François Degros262deb92020-06-19 16:24:39 +100022 ArchiveManager::IsInAllowedFolder("/media/removable/foo/dir1/bar"));
23 EXPECT_TRUE(ArchiveManager::IsInAllowedFolder("/media/removable/foo/bar"));
24 EXPECT_FALSE(
25 ArchiveManager::IsInAllowedFolder("/home/chronos/user/Downloads/bar"));
26 EXPECT_FALSE(
27 ArchiveManager::IsInAllowedFolder("/home/chronos/user/GCache/bar"));
28 EXPECT_TRUE(ArchiveManager::IsInAllowedFolder(
29 "/home/chronos/u-0123456789abcdef0123456789abcdef01234567/MyFiles/"
30 "Downloads/bar"));
31 EXPECT_TRUE(ArchiveManager::IsInAllowedFolder(
32 "/home/chronos/u-0123456789abcdef0123456789abcdef01234567/MyFiles/bar"));
33 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder(""));
34 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder("/tmp"));
35 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder("/media/removable"));
36 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder("/media/removable/"));
37 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder("/media/archive"));
38 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder("/media/archive/"));
39 EXPECT_FALSE(
40 ArchiveManager::IsInAllowedFolder("/home/chronos/user/Downloads"));
41 EXPECT_FALSE(
42 ArchiveManager::IsInAllowedFolder("/home/chronos/user/Downloads/"));
43 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder("/home/chronos/user/GCache"));
44 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder("/home/chronos/user/GCache/"));
45 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder(
Ben Chan16d85862013-05-28 20:30:30 -070046 "/home/chronos/u-0123456789abcdef0123456789abcdef01234567/Downloads"));
François Degros262deb92020-06-19 16:24:39 +100047 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder(
Ben Chan16d85862013-05-28 20:30:30 -070048 "/home/chronos/u-0123456789abcdef0123456789abcdef01234567/Downloads/"));
François Degros262deb92020-06-19 16:24:39 +100049 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder(
Ben Chan16d85862013-05-28 20:30:30 -070050 "/home/chronos/u-0123456789abcdef0123456789abcdef01234567/GCache"));
François Degros262deb92020-06-19 16:24:39 +100051 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder(
Ben Chan16d85862013-05-28 20:30:30 -070052 "/home/chronos/u-0123456789abcdef0123456789abcdef01234567/GCache/"));
François Degros262deb92020-06-19 16:24:39 +100053 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder("/home/chronos/bar"));
54 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder("/home/chronos/user/bar"));
55 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder(
56 "/home/chronos/u-0123456789abcdef0123456789abcdef01234567/bar"));
Ben Chande0e3f62017-09-26 06:28:39 -070057 EXPECT_FALSE(
François Degros262deb92020-06-19 16:24:39 +100058 ArchiveManager::IsInAllowedFolder("/home/chronos/Downloads/bar"));
59 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder("/home/chronos/GCache/bar"));
Ben Chande0e3f62017-09-26 06:28:39 -070060 EXPECT_FALSE(
François Degros262deb92020-06-19 16:24:39 +100061 ArchiveManager::IsInAllowedFolder("/home/chronos/foo/Downloads/bar"));
62 EXPECT_FALSE(
63 ArchiveManager::IsInAllowedFolder("/home/chronos/foo/GCache/bar"));
64 EXPECT_FALSE(
65 ArchiveManager::IsInAllowedFolder("/home/chronos/u-/Downloads/bar"));
66 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder(
67 "/home/chronos/u-0123456789abcdef0123456789abcdef0123456/Downloads/bar"));
68 EXPECT_FALSE(ArchiveManager::IsInAllowedFolder(
69 "/home/chronos/u-xyz3456789abcdef0123456789abcdef01234567/Downloads/"
70 "bar"));
François Degrosb58376b2019-07-15 14:10:50 +100071}
72
Ben Chan8dcede82011-07-25 20:56:13 -070073} // namespace cros_disks