// Copyright 2013 The Chromium 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 #include #include "base/files/file_path.h" #include "base/strings/string_util.h" #include "ios/chrome/app/safe_mode_util.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/platform_test.h" using std::string; using std::vector; namespace { typedef PlatformTest SafeModeUtilTest; TEST_F(SafeModeUtilTest, GetAllImages) { vector images = safe_mode_util::GetLoadedImages(nullptr); // There should be loaded images. EXPECT_GT(images.size(), 0U); // The libSystem dylib should always be present. bool found_lib_system = false; string lib_system_prefix("libSystem"); for (size_t i = 0; i < images.size(); ++i) { string base_name = base::FilePath(images[i]).BaseName().value(); if (base::StartsWith(base_name, lib_system_prefix, base::CompareCase::SENSITIVE)) { found_lib_system = true; break; } } EXPECT_TRUE(found_lib_system); } TEST_F(SafeModeUtilTest, GetSomeImages) { vector all_images = safe_mode_util::GetLoadedImages(nullptr); vector usr_lib_images = safe_mode_util::GetLoadedImages("/usr/lib/"); // There should be images under /usr/lib/, but not all of them are. EXPECT_GT(usr_lib_images.size(), 0U); EXPECT_LT(usr_lib_images.size(), all_images.size()); } } // namespace