|  | // Copyright 2014 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 "base/android/content_uri_utils.h" | 
|  | #include "base/files/file_util.h" | 
|  | #include "base/path_service.h" | 
|  | #include "base/test/test_file_util.h" | 
|  | #include "testing/gtest/include/gtest/gtest.h" | 
|  |  | 
|  | namespace base { | 
|  | namespace android { | 
|  |  | 
|  | // Disable on Android ASAN bot due to consistent failures: crbug.com/807080. | 
|  | #if !defined(ADDRESS_SANITIZER) | 
|  | TEST(ContentUriUtilsTest, ContentUriMimeTest) { | 
|  | // Get the test image path. | 
|  | FilePath data_dir; | 
|  | ASSERT_TRUE(PathService::Get(DIR_TEST_DATA, &data_dir)); | 
|  | data_dir = data_dir.Append(FILE_PATH_LITERAL("base")); | 
|  | data_dir = data_dir.Append(FILE_PATH_LITERAL("test")); | 
|  | data_dir = data_dir.Append(FILE_PATH_LITERAL("data")); | 
|  | data_dir = data_dir.AppendASCII("file_util"); | 
|  | ASSERT_TRUE(PathExists(data_dir)); | 
|  | FilePath image_file = data_dir.Append(FILE_PATH_LITERAL("red.png")); | 
|  |  | 
|  | // Insert the image into MediaStore. MediaStore will do some conversions, and | 
|  | // return the content URI. | 
|  | FilePath path = base::InsertImageIntoMediaStore(image_file); | 
|  | EXPECT_TRUE(path.IsContentUri()); | 
|  | EXPECT_TRUE(PathExists(path)); | 
|  |  | 
|  | std::string mime = GetContentUriMimeType(path); | 
|  | EXPECT_EQ(mime, std::string("image/png")); | 
|  |  | 
|  | FilePath invalid_path("content://foo.bar"); | 
|  | mime = GetContentUriMimeType(invalid_path); | 
|  | EXPECT_TRUE(mime.empty()); | 
|  | } | 
|  | #endif | 
|  |  | 
|  | }  // namespace android | 
|  | }  // namespace base |