| Index: third_party/WebKit/Source/platform/fonts/GlyphPageTreeNodeTest.cpp
|
| diff --git a/third_party/WebKit/Source/platform/fonts/GlyphPageTreeNodeTest.cpp b/third_party/WebKit/Source/platform/fonts/GlyphPageTreeNodeTest.cpp
|
| deleted file mode 100644
|
| index a8da78d462b0c1db3c1e5cda6f0d89555e3d7123..0000000000000000000000000000000000000000
|
| --- a/third_party/WebKit/Source/platform/fonts/GlyphPageTreeNodeTest.cpp
|
| +++ /dev/null
|
| @@ -1,290 +0,0 @@
|
| -// 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 "platform/fonts/GlyphPageTreeNode.h"
|
| -
|
| -#include "platform/fonts/SegmentedFontData.h"
|
| -#include "platform/fonts/SimpleFontData.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -namespace blink {
|
| -
|
| -namespace {
|
| -
|
| -class TestCustomFontData : public CustomFontData {
|
| - public:
|
| - static PassRefPtr<TestCustomFontData> create() {
|
| - return adoptRef(new TestCustomFontData());
|
| - }
|
| -
|
| - private:
|
| - TestCustomFontData() {}
|
| - bool isLoadingFallback() const override { return true; }
|
| -};
|
| -
|
| -class TestSimpleFontData : public SimpleFontData {
|
| - public:
|
| - static PassRefPtr<TestSimpleFontData> create(UChar32 from, UChar32 to) {
|
| - return adoptRef(new TestSimpleFontData(nullptr, from, to));
|
| - }
|
| -
|
| - static PassRefPtr<TestSimpleFontData> createUnloaded(UChar32 from,
|
| - UChar32 to) {
|
| - return adoptRef(
|
| - new TestSimpleFontData(TestCustomFontData::create(), from, to));
|
| - }
|
| -
|
| - private:
|
| - TestSimpleFontData(PassRefPtr<CustomFontData> customData,
|
| - UChar32 from,
|
| - UChar32 to)
|
| - : SimpleFontData(std::move(customData), 10, false, false),
|
| - m_from(from),
|
| - m_to(to) {}
|
| -
|
| - bool fillGlyphPage(GlyphPage* pageToFill,
|
| - unsigned offset,
|
| - unsigned length,
|
| - UChar* buffer,
|
| - unsigned bufferLength) const override {
|
| - const Glyph kGlyph = 1;
|
| - String bufferString(buffer, bufferLength);
|
| - unsigned bufferIndex = 0;
|
| - bool hasGlyphs = false;
|
| - for (unsigned i = 0; i < length; i++) {
|
| - UChar32 c = bufferString.characterStartingAt(bufferIndex);
|
| - bufferIndex += U16_LENGTH(c);
|
| - if (m_from <= c && c <= m_to) {
|
| - pageToFill->setGlyphDataForIndex(offset + i, kGlyph, this);
|
| - hasGlyphs = true;
|
| - }
|
| - }
|
| - return hasGlyphs;
|
| - }
|
| -
|
| - UChar32 m_from;
|
| - UChar32 m_to;
|
| -};
|
| -
|
| -} // anonymous namespace
|
| -
|
| -TEST(GlyphPageTreeNodeTest, rootChild) {
|
| - const unsigned kPageNumber = 0;
|
| - size_t pageCountBeforeTest = GlyphPageTreeNode::treeGlyphPageCount();
|
| - {
|
| - RefPtr<TestSimpleFontData> data = TestSimpleFontData::create('a', 'z');
|
| - GlyphPageTreeNode* node =
|
| - GlyphPageTreeNode::getNormalRootChild(data.get(), kPageNumber);
|
| - EXPECT_EQ(pageCountBeforeTest + 1, GlyphPageTreeNode::treeGlyphPageCount());
|
| - EXPECT_TRUE(node->page()->glyphAt('a'));
|
| - EXPECT_FALSE(node->page()->glyphAt('A'));
|
| - EXPECT_FALSE(node->isSystemFallback());
|
| - EXPECT_EQ(1u, node->level());
|
| - EXPECT_EQ(node, node->page()->owner());
|
| - }
|
| - EXPECT_EQ(pageCountBeforeTest, GlyphPageTreeNode::treeGlyphPageCount());
|
| -}
|
| -
|
| -TEST(GlyphPageTreeNodeTest, level2) {
|
| - const unsigned kPageNumber = 0;
|
| - size_t pageCountBeforeTest = GlyphPageTreeNode::treeGlyphPageCount();
|
| - {
|
| - RefPtr<TestSimpleFontData> dataAtoC = TestSimpleFontData::create('A', 'C');
|
| - RefPtr<TestSimpleFontData> dataCtoE = TestSimpleFontData::create('C', 'E');
|
| - GlyphPageTreeNode* node1 =
|
| - GlyphPageTreeNode::getNormalRootChild(dataAtoC.get(), kPageNumber);
|
| - GlyphPageTreeNode* node2 =
|
| - node1->getNormalChild(dataCtoE.get(), kPageNumber);
|
| - EXPECT_EQ(pageCountBeforeTest + 3, GlyphPageTreeNode::treeGlyphPageCount());
|
| -
|
| - EXPECT_EQ(2u, node2->level());
|
| - EXPECT_EQ(dataAtoC, node2->page()->glyphDataForCharacter('A').fontData);
|
| - EXPECT_EQ(dataAtoC, node2->page()->glyphDataForCharacter('C').fontData);
|
| - EXPECT_EQ(dataCtoE, node2->page()->glyphDataForCharacter('E').fontData);
|
| - }
|
| - EXPECT_EQ(pageCountBeforeTest, GlyphPageTreeNode::treeGlyphPageCount());
|
| -}
|
| -
|
| -TEST(GlyphPageTreeNodeTest, segmentedData) {
|
| - const unsigned kPageNumber = 0;
|
| - size_t pageCountBeforeTest = GlyphPageTreeNode::treeGlyphPageCount();
|
| - {
|
| - RefPtr<TestSimpleFontData> dataBtoC = TestSimpleFontData::create('B', 'C');
|
| - RefPtr<TestSimpleFontData> dataCtoE = TestSimpleFontData::create('C', 'E');
|
| - RefPtr<SegmentedFontData> segmentedData = SegmentedFontData::create();
|
| - segmentedData->appendFace(
|
| - adoptRef(new FontDataForRangeSet(dataBtoC, 'A', 'C')));
|
| - segmentedData->appendFace(
|
| - adoptRef(new FontDataForRangeSet(dataCtoE, 'C', 'D')));
|
| - GlyphPageTreeNode* node =
|
| - GlyphPageTreeNode::getNormalRootChild(segmentedData.get(), kPageNumber);
|
| -
|
| - EXPECT_EQ(0, node->page()->glyphDataForCharacter('A').fontData);
|
| - EXPECT_EQ(dataBtoC, node->page()->glyphDataForCharacter('B').fontData);
|
| - EXPECT_EQ(dataBtoC, node->page()->glyphDataForCharacter('C').fontData);
|
| - EXPECT_EQ(dataCtoE, node->page()->glyphDataForCharacter('D').fontData);
|
| - EXPECT_EQ(0, node->page()->glyphDataForCharacter('E').fontData);
|
| - }
|
| - EXPECT_EQ(pageCountBeforeTest, GlyphPageTreeNode::treeGlyphPageCount());
|
| -}
|
| -
|
| -TEST(GlyphPageTreeNodeTest, outsideBMP) {
|
| - const unsigned kPageNumber = 0x1f300 / GlyphPage::size;
|
| - size_t pageCountBeforeTest = GlyphPageTreeNode::treeGlyphPageCount();
|
| - {
|
| - RefPtr<TestSimpleFontData> data =
|
| - TestSimpleFontData::create(0x1f310, 0x1f320);
|
| - GlyphPageTreeNode* node =
|
| - GlyphPageTreeNode::getNormalRootChild(data.get(), kPageNumber);
|
| - EXPECT_EQ(pageCountBeforeTest + 1, GlyphPageTreeNode::treeGlyphPageCount());
|
| - EXPECT_FALSE(node->page()->glyphForCharacter(0x1f30f));
|
| - EXPECT_TRUE(node->page()->glyphForCharacter(0x1f310));
|
| - EXPECT_TRUE(node->page()->glyphForCharacter(0x1f320));
|
| - EXPECT_FALSE(node->page()->glyphForCharacter(0x1f321));
|
| - }
|
| - EXPECT_EQ(pageCountBeforeTest, GlyphPageTreeNode::treeGlyphPageCount());
|
| -}
|
| -
|
| -TEST(GlyphPageTreeNodeTest, customData) {
|
| - const unsigned kPageNumber = 0;
|
| - size_t pageCountBeforeTest = GlyphPageTreeNode::treeGlyphPageCount();
|
| - {
|
| - RefPtr<TestSimpleFontData> dataAtoC =
|
| - TestSimpleFontData::createUnloaded('A', 'C');
|
| - RefPtr<TestSimpleFontData> dataBtoD = TestSimpleFontData::create('B', 'D');
|
| - RefPtr<TestSimpleFontData> dataCtoE =
|
| - TestSimpleFontData::createUnloaded('C', 'E');
|
| - RefPtr<SegmentedFontData> segmentedData = SegmentedFontData::create();
|
| - segmentedData->appendFace(
|
| - adoptRef(new FontDataForRangeSet(dataAtoC, 'A', 'C')));
|
| - segmentedData->appendFace(
|
| - adoptRef(new FontDataForRangeSet(dataBtoD, 'B', 'D')));
|
| - segmentedData->appendFace(
|
| - adoptRef(new FontDataForRangeSet(dataCtoE, 'C', 'E')));
|
| - GlyphPageTreeNode* node =
|
| - GlyphPageTreeNode::getNormalRootChild(segmentedData.get(), kPageNumber);
|
| -
|
| - EXPECT_EQ(0, node->page()->glyphDataForCharacter('A').fontData);
|
| - EXPECT_EQ(dataBtoD, node->page()->glyphDataForCharacter('B').fontData);
|
| - EXPECT_EQ(dataBtoD, node->page()->glyphDataForCharacter('C').fontData);
|
| - EXPECT_EQ(dataBtoD, node->page()->glyphDataForCharacter('D').fontData);
|
| - EXPECT_EQ(0, node->page()->glyphDataForCharacter('E').fontData);
|
| -
|
| - EXPECT_EQ(dataAtoC->customFontData(),
|
| - node->page()->customFontToLoadAt('A'));
|
| - EXPECT_EQ(dataAtoC->customFontData(),
|
| - node->page()->customFontToLoadAt('B'));
|
| - EXPECT_EQ(dataAtoC->customFontData(),
|
| - node->page()->customFontToLoadAt('C'));
|
| - EXPECT_EQ(0, node->page()->customFontToLoadAt('D'));
|
| - EXPECT_EQ(dataCtoE->customFontData(),
|
| - node->page()->customFontToLoadAt('E'));
|
| - }
|
| - EXPECT_EQ(pageCountBeforeTest, GlyphPageTreeNode::treeGlyphPageCount());
|
| -}
|
| -
|
| -TEST(GlyphPageTreeNodeTest, customDataWithMultiplePages) {
|
| - const unsigned kPageNumber = 0;
|
| - size_t pageCountBeforeTest = GlyphPageTreeNode::treeGlyphPageCount();
|
| - {
|
| - RefPtr<TestSimpleFontData> dataAtoC =
|
| - TestSimpleFontData::createUnloaded('A', 'C');
|
| - RefPtr<TestSimpleFontData> dataBtoD = TestSimpleFontData::create('B', 'D');
|
| - RefPtr<TestSimpleFontData> dataCtoE =
|
| - TestSimpleFontData::createUnloaded('C', 'E');
|
| - RefPtr<SegmentedFontData> segmentedData1 = SegmentedFontData::create();
|
| - RefPtr<SegmentedFontData> segmentedData2 = SegmentedFontData::create();
|
| - RefPtr<SegmentedFontData> segmentedData3 = SegmentedFontData::create();
|
| - segmentedData1->appendFace(
|
| - adoptRef(new FontDataForRangeSet(dataAtoC, 'A', 'C')));
|
| - segmentedData2->appendFace(
|
| - adoptRef(new FontDataForRangeSet(dataBtoD, 'B', 'D')));
|
| - segmentedData3->appendFace(
|
| - adoptRef(new FontDataForRangeSet(dataCtoE, 'C', 'E')));
|
| - GlyphPageTreeNode* node1 = GlyphPageTreeNode::getNormalRootChild(
|
| - segmentedData1.get(), kPageNumber);
|
| - GlyphPageTreeNode* node2 =
|
| - node1->getNormalChild(segmentedData2.get(), kPageNumber);
|
| - GlyphPageTreeNode* node3 =
|
| - node2->getNormalChild(segmentedData3.get(), kPageNumber);
|
| -
|
| - EXPECT_EQ(0, node3->page()->glyphDataForCharacter('A').fontData);
|
| - EXPECT_EQ(dataBtoD, node3->page()->glyphDataForCharacter('B').fontData);
|
| - EXPECT_EQ(dataBtoD, node3->page()->glyphDataForCharacter('C').fontData);
|
| - EXPECT_EQ(dataBtoD, node3->page()->glyphDataForCharacter('D').fontData);
|
| - EXPECT_EQ(0, node3->page()->glyphDataForCharacter('E').fontData);
|
| -
|
| - EXPECT_EQ(dataAtoC->customFontData(),
|
| - node3->page()->customFontToLoadAt('A'));
|
| - EXPECT_EQ(dataAtoC->customFontData(),
|
| - node3->page()->customFontToLoadAt('B'));
|
| - EXPECT_EQ(dataAtoC->customFontData(),
|
| - node3->page()->customFontToLoadAt('C'));
|
| - EXPECT_EQ(0, node3->page()->customFontToLoadAt('D'));
|
| - EXPECT_EQ(dataCtoE->customFontData(),
|
| - node3->page()->customFontToLoadAt('E'));
|
| - }
|
| - EXPECT_EQ(pageCountBeforeTest, GlyphPageTreeNode::treeGlyphPageCount());
|
| -}
|
| -
|
| -TEST(GlyphPageTreeNodeTest, systemFallback) {
|
| - const unsigned kPageNumber = 0;
|
| - size_t pageCountBeforeTest = GlyphPageTreeNode::treeGlyphPageCount();
|
| - {
|
| - RefPtr<TestSimpleFontData> dataAtoC =
|
| - TestSimpleFontData::createUnloaded('A', 'C');
|
| - RefPtr<TestSimpleFontData> dataBtoD = TestSimpleFontData::create('B', 'D');
|
| - RefPtr<SegmentedFontData> segmentedData = SegmentedFontData::create();
|
| - segmentedData->appendFace(
|
| - adoptRef(new FontDataForRangeSet(dataAtoC, 'A', 'C')));
|
| - GlyphPageTreeNode* node1 =
|
| - GlyphPageTreeNode::getNormalRootChild(segmentedData.get(), kPageNumber);
|
| - GlyphPageTreeNode* node2 =
|
| - node1->getNormalChild(dataBtoD.get(), kPageNumber);
|
| - SystemFallbackGlyphPageTreeNode* node3 =
|
| - node2->getSystemFallbackChild(kPageNumber);
|
| -
|
| - EXPECT_TRUE(node3->isSystemFallback());
|
| -
|
| - EXPECT_EQ(0, node3->page()->glyphDataForCharacter('A').fontData);
|
| - EXPECT_EQ(dataBtoD, node3->page()->glyphDataForCharacter('B').fontData);
|
| - EXPECT_EQ(dataBtoD, node3->page()->glyphDataForCharacter('C').fontData);
|
| - EXPECT_EQ(dataBtoD, node3->page()->glyphDataForCharacter('D').fontData);
|
| -
|
| - EXPECT_EQ(dataAtoC->customFontData(),
|
| - node3->page()->customFontToLoadAt('A'));
|
| - EXPECT_EQ(dataAtoC->customFontData(),
|
| - node3->page()->customFontToLoadAt('B'));
|
| - EXPECT_EQ(dataAtoC->customFontData(),
|
| - node3->page()->customFontToLoadAt('C'));
|
| - EXPECT_EQ(0, node3->page()->customFontToLoadAt('D'));
|
| - }
|
| - EXPECT_EQ(pageCountBeforeTest, GlyphPageTreeNode::treeGlyphPageCount());
|
| -}
|
| -
|
| -TEST(GlyphPageTreeNodeTest, systemFallbackScriptIsolation) {
|
| - const unsigned kPageNumber = 0;
|
| - RefPtr<TestSimpleFontData> defaultData = TestSimpleFontData::create('A', 'B');
|
| - GlyphPageTreeNode* node1 =
|
| - GlyphPageTreeNode::getNormalRootChild(defaultData.get(), kPageNumber);
|
| - SystemFallbackGlyphPageTreeNode* node2 =
|
| - node1->getSystemFallbackChild(kPageNumber);
|
| -
|
| - EXPECT_TRUE(node2->isSystemFallback());
|
| -
|
| - GlyphPage* commonPage = node2->page(USCRIPT_COMMON);
|
| - GlyphPage* latinPage = node2->page(USCRIPT_LATIN);
|
| - GlyphPage* simplifiedChinesePage = node2->page(USCRIPT_SIMPLIFIED_HAN);
|
| - GlyphPage* traditionalChinesePage = node2->page(USCRIPT_TRADITIONAL_HAN);
|
| - GlyphPage* japanesePage = node2->page(USCRIPT_KATAKANA_OR_HIRAGANA);
|
| - EXPECT_NE(commonPage, latinPage);
|
| - EXPECT_NE(commonPage, simplifiedChinesePage);
|
| - EXPECT_NE(commonPage, traditionalChinesePage);
|
| - EXPECT_NE(simplifiedChinesePage, traditionalChinesePage);
|
| - EXPECT_NE(commonPage, japanesePage);
|
| - EXPECT_NE(japanesePage, simplifiedChinesePage);
|
| - EXPECT_NE(japanesePage, traditionalChinesePage);
|
| -}
|
| -
|
| -} // namespace blink
|
|
|