OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "config.h" | 5 #include "config.h" |
6 #include "platform/fonts/GlyphPageTreeNode.h" | 6 #include "platform/fonts/GlyphPageTreeNode.h" |
7 | 7 |
8 #include "platform/fonts/SegmentedFontData.h" | 8 #include "platform/fonts/SegmentedFontData.h" |
9 #include "platform/fonts/SimpleFontData.h" | 9 #include "platform/fonts/SimpleFontData.h" |
10 #include <gtest/gtest.h> | 10 #include <gtest/gtest.h> |
11 | 11 |
12 namespace blink { | 12 namespace blink { |
13 | 13 |
14 class TestCustomFontData : public CustomFontData { | 14 class TestCustomFontData : public CustomFontData { |
15 public: | 15 public: |
16 static PassRefPtr<TestCustomFontData> create() { return adoptRef(new TestCus
tomFontData()); } | 16 static PassRefPtr<TestCustomFontData> create() { return adoptRef(new TestCus
tomFontData()); } |
17 private: | 17 private: |
18 TestCustomFontData() { } | 18 TestCustomFontData() { } |
19 virtual bool isLoadingFallback() const OVERRIDE { return true; } | 19 virtual bool isLoadingFallback() const override { return true; } |
20 }; | 20 }; |
21 | 21 |
22 class TestSimpleFontData : public SimpleFontData { | 22 class TestSimpleFontData : public SimpleFontData { |
23 public: | 23 public: |
24 static PassRefPtr<TestSimpleFontData> create(UChar32 from, UChar32 to) | 24 static PassRefPtr<TestSimpleFontData> create(UChar32 from, UChar32 to) |
25 { | 25 { |
26 return adoptRef(new TestSimpleFontData(nullptr, from, to)); | 26 return adoptRef(new TestSimpleFontData(nullptr, from, to)); |
27 } | 27 } |
28 | 28 |
29 static PassRefPtr<TestSimpleFontData> createUnloaded(UChar32 from, UChar32 t
o) | 29 static PassRefPtr<TestSimpleFontData> createUnloaded(UChar32 from, UChar32 t
o) |
30 { | 30 { |
31 return adoptRef(new TestSimpleFontData(TestCustomFontData::create(), fro
m, to)); | 31 return adoptRef(new TestSimpleFontData(TestCustomFontData::create(), fro
m, to)); |
32 } | 32 } |
33 | 33 |
34 private: | 34 private: |
35 TestSimpleFontData(PassRefPtr<CustomFontData> customData, UChar32 from, UCha
r32 to) | 35 TestSimpleFontData(PassRefPtr<CustomFontData> customData, UChar32 from, UCha
r32 to) |
36 : SimpleFontData(customData, 10, false, false) | 36 : SimpleFontData(customData, 10, false, false) |
37 , m_from(from) | 37 , m_from(from) |
38 , m_to(to) | 38 , m_to(to) |
39 { | 39 { |
40 } | 40 } |
41 | 41 |
42 bool fillGlyphPage(GlyphPage* pageToFill, unsigned offset, unsigned length,
UChar* buffer, unsigned bufferLength) const OVERRIDE | 42 bool fillGlyphPage(GlyphPage* pageToFill, unsigned offset, unsigned length,
UChar* buffer, unsigned bufferLength) const override |
43 { | 43 { |
44 const Glyph kGlyph = 1; | 44 const Glyph kGlyph = 1; |
45 String bufferString(buffer, bufferLength); | 45 String bufferString(buffer, bufferLength); |
46 unsigned bufferIndex = 0; | 46 unsigned bufferIndex = 0; |
47 bool hasGlyphs = false; | 47 bool hasGlyphs = false; |
48 for (unsigned i = 0; i < length; i++) { | 48 for (unsigned i = 0; i < length; i++) { |
49 UChar32 c = bufferString.characterStartingAt(bufferIndex); | 49 UChar32 c = bufferString.characterStartingAt(bufferIndex); |
50 bufferIndex += U16_LENGTH(c); | 50 bufferIndex += U16_LENGTH(c); |
51 if (m_from <= c && c <= m_to) { | 51 if (m_from <= c && c <= m_to) { |
52 pageToFill->setGlyphDataForIndex(offset + i, kGlyph, this); | 52 pageToFill->setGlyphDataForIndex(offset + i, kGlyph, this); |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
217 | 217 |
218 EXPECT_EQ(dataAtoC->customFontData(), node3->page()->customFontToLoadAt(
'A')); | 218 EXPECT_EQ(dataAtoC->customFontData(), node3->page()->customFontToLoadAt(
'A')); |
219 EXPECT_EQ(dataAtoC->customFontData(), node3->page()->customFontToLoadAt(
'B')); | 219 EXPECT_EQ(dataAtoC->customFontData(), node3->page()->customFontToLoadAt(
'B')); |
220 EXPECT_EQ(dataAtoC->customFontData(), node3->page()->customFontToLoadAt(
'C')); | 220 EXPECT_EQ(dataAtoC->customFontData(), node3->page()->customFontToLoadAt(
'C')); |
221 EXPECT_EQ(0, node3->page()->customFontToLoadAt('D')); | 221 EXPECT_EQ(0, node3->page()->customFontToLoadAt('D')); |
222 } | 222 } |
223 EXPECT_EQ(pageCountBeforeTest, GlyphPageTreeNode::treeGlyphPageCount()); | 223 EXPECT_EQ(pageCountBeforeTest, GlyphPageTreeNode::treeGlyphPageCount()); |
224 } | 224 } |
225 | 225 |
226 } // namespace blink | 226 } // namespace blink |
OLD | NEW |