1c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)// found in the LICENSE file. 4c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 5c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#include "config.h" 6c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#include "core/clipboard/DataObject.h" 7c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 8c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#include "core/clipboard/DataObjectItem.h" 9c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#include "public/platform/Platform.h" 10c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#include "public/platform/WebUnitTestSupport.h" 11c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#include <gtest/gtest.h> 12c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 13c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 14c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 15c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)class DataObjectTest : public ::testing::Test { 16c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)public: 17c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) DataObjectTest() 18c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) : m_dataObject(DataObject::create()) 19c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) { 20c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) } 21c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 22c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)protected: 23c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) RefPtrWillBePersistent<DataObject> m_dataObject; 24c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)}; 25c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 26c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)TEST_F(DataObjectTest, addItemWithFilenameAndNoTitle) 27c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles){ 28c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) String filePath = Platform::current()->unitTestSupport()->webKitRootDir(); 29c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) filePath.append("/Source/core/clipboard/DataObjectTest.cpp"); 30c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 31c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) m_dataObject->addFilename(filePath, String()); 32c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) EXPECT_EQ(1U, m_dataObject->length()); 33c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 34c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) RefPtrWillBeRawPtr<DataObjectItem> item = m_dataObject->item(0); 35c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) EXPECT_EQ(DataObjectItem::FileKind, item->kind()); 36c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 37c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) RefPtrWillBeRawPtr<Blob> blob = item->getAsFile(); 38c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) ASSERT_TRUE(blob->isFile()); 39c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) RefPtrWillBeRawPtr<File> file = toFile(blob.get()); 40c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) EXPECT_TRUE(file->hasBackingFile()); 41c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) EXPECT_EQ(File::IsUserVisible, file->userVisibility()); 42c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) EXPECT_EQ(filePath, file->path()); 43c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} 44c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 45c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)TEST_F(DataObjectTest, addItemWithFilenameAndTitle) 46c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles){ 47c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) String filePath = Platform::current()->unitTestSupport()->webKitRootDir(); 48c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) filePath.append("/Source/core/clipboard/DataObjectTest.cpp"); 49c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 50c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) m_dataObject->addFilename(filePath, "name.cpp"); 51c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) EXPECT_EQ(1U, m_dataObject->length()); 52c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 53c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) RefPtrWillBeRawPtr<DataObjectItem> item = m_dataObject->item(0); 54c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) EXPECT_EQ(DataObjectItem::FileKind, item->kind()); 55c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 56c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) RefPtrWillBeRawPtr<Blob> blob = item->getAsFile(); 57c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) ASSERT_TRUE(blob->isFile()); 58c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) RefPtrWillBeRawPtr<File> file = toFile(blob.get()); 59c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) EXPECT_TRUE(file->hasBackingFile()); 60c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) EXPECT_EQ(File::IsUserVisible, file->userVisibility()); 61c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) EXPECT_EQ(filePath, file->path()); 62c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) EXPECT_EQ("name.cpp", file->name()); 63c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} 64c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 65c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink 66