1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
// 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 "config.h"
#include "public/platform/WebDragData.h"
#include "core/clipboard/DataObject.h"
#include "public/platform/WebVector.h"
#include <gtest/gtest.h>
namespace blink {
TEST(WebDragDataTest, items)
{
WebDragData data(DataObject::create());
// Native file.
data.getValue()->add(File::create("/native/path"));
// Blob file.
const RefPtr<BlobDataHandle> blobDataHandle = BlobDataHandle::create();
data.getValue()->add(File::create("name", 0.0, blobDataHandle));
// User visible snapshot file.
{
FileMetadata metadata;
metadata.platformPath = "/native/visible/snapshot";
data.getValue()->add(File::createForFileSystemFile("name", metadata, File::IsUserVisible));
}
// Not user visible snapshot file.
{
FileMetadata metadata;
metadata.platformPath = "/native/not-visible/snapshot";
data.getValue()->add(File::createForFileSystemFile("name", metadata, File::IsNotUserVisible));
}
// User visible file system URL file.
{
FileMetadata metadata;
metadata.length = 1234;
KURL url(ParsedURLStringTag(), "filesystem:http://example.com/isolated/hash/visible-non-native-file");
data.getValue()->add(File::createForFileSystemFile(url, metadata, File::IsUserVisible));
}
// Not user visible file system URL file.
{
FileMetadata metadata;
metadata.length = 1234;
KURL url(ParsedURLStringTag(), "filesystem:http://example.com/isolated/hash/not-visible-non-native-file");
data.getValue()->add(File::createForFileSystemFile(url, metadata, File::IsNotUserVisible));
}
WebVector<WebDragData::Item> items = data.items();
ASSERT_EQ(6u, items.size());
EXPECT_EQ(WebDragData::Item::StorageTypeFilename, items[0].storageType);
EXPECT_EQ("/native/path", items[0].filenameData);
EXPECT_EQ("path", items[0].displayNameData);
EXPECT_EQ(WebDragData::Item::StorageTypeString, items[1].storageType);
EXPECT_EQ("text/plain", items[1].stringType);
EXPECT_EQ("name", items[1].stringData);
EXPECT_EQ(WebDragData::Item::StorageTypeFilename, items[2].storageType);
EXPECT_EQ("/native/visible/snapshot", items[2].filenameData);
EXPECT_EQ("name", items[2].displayNameData);
EXPECT_EQ(WebDragData::Item::StorageTypeFilename, items[3].storageType);
EXPECT_EQ("/native/not-visible/snapshot", items[3].filenameData);
EXPECT_EQ("name", items[3].displayNameData);
EXPECT_EQ(WebDragData::Item::StorageTypeFileSystemFile, items[4].storageType);
EXPECT_EQ("filesystem:http://example.com/isolated/hash/visible-non-native-file", items[4].fileSystemURL);
EXPECT_EQ(1234, items[4].fileSystemFileSize);
EXPECT_EQ(WebDragData::Item::StorageTypeFileSystemFile, items[5].storageType);
EXPECT_EQ("filesystem:http://example.com/isolated/hash/not-visible-non-native-file", items[5].fileSystemURL);
EXPECT_EQ(1234, items[5].fileSystemFileSize);
}
} // namespace blink
|