diff options
author | Adam Lesinski <adamlesinski@google.com> | 2016-03-09 13:11:25 -0800 |
---|---|---|
committer | Adam Lesinski <adamlesinski@google.com> | 2016-03-09 13:23:12 -0800 |
commit | 96917c25f09bb2f33e22f20cdfa4ece8f310b084 (patch) | |
tree | 3ceb11cdc8d6dfc3dd399a01e648bda0d91dea05 /tools/aapt2/util/Files_test.cpp | |
parent | 0dda14c671e7c19841f963b0bc665da055738437 (diff) |
AAPT2: Fix file::mkdirs when given absolute paths
file::mkdirs would try to extract the first part of the
path '/path' which would be the empty string ''. Mkdir would
fail creating the empty string directory.
Change-Id: Ice8ba92135f145f52f3663499a2c49eebe797328
Diffstat (limited to 'tools/aapt2/util/Files_test.cpp')
-rw-r--r-- | tools/aapt2/util/Files_test.cpp | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/tools/aapt2/util/Files_test.cpp b/tools/aapt2/util/Files_test.cpp new file mode 100644 index 000000000000..efb04593ff82 --- /dev/null +++ b/tools/aapt2/util/Files_test.cpp @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * 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. + */ + +#include "test/Test.h" +#include "util/Files.h" + +#include <sstream> + +namespace aapt { +namespace file { + +class FilesTest : public ::testing::Test { +public: + void SetUp() override { + std::stringstream builder; + builder << "hello" << sDirSep << "there"; + mExpectedPath = builder.str(); + } + +protected: + std::string mExpectedPath; +}; + +TEST_F(FilesTest, appendPath) { + std::string base = "hello"; + appendPath(&base, "there"); + EXPECT_EQ(mExpectedPath, base); +} + +TEST_F(FilesTest, appendPathWithLeadingOrTrailingSeparators) { + std::string base = "hello/"; + appendPath(&base, "there"); + EXPECT_EQ(mExpectedPath, base); + + base = "hello"; + appendPath(&base, "/there"); + EXPECT_EQ(mExpectedPath, base); + + base = "hello/"; + appendPath(&base, "/there"); + EXPECT_EQ(mExpectedPath, base); +} + +} // namespace files +} // namespace aapt |