| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "platform/fonts/shaping/RunSegmenter.h" | 5 #include "platform/fonts/shaping/RunSegmenter.h" |
| 6 | 6 |
| 7 #include "platform/fonts/OrientationIterator.h" | 7 #include "platform/fonts/OrientationIterator.h" |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
| 9 #include "wtf/Assertions.h" | 9 #include "wtf/Assertions.h" |
| 10 #include "wtf/Vector.h" | 10 #include "wtf/Vector.h" |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 limit(theLimit), | 37 limit(theLimit), |
| 38 script(theScript), | 38 script(theScript), |
| 39 renderOrientation(theRenderOrientation), | 39 renderOrientation(theRenderOrientation), |
| 40 fontFallbackPriority(theFontFallbackPriority) {} | 40 fontFallbackPriority(theFontFallbackPriority) {} |
| 41 }; | 41 }; |
| 42 | 42 |
| 43 class RunSegmenterTest : public testing::Test { | 43 class RunSegmenterTest : public testing::Test { |
| 44 protected: | 44 protected: |
| 45 void CheckRuns(const Vector<SegmenterTestRun>& runs, | 45 void CheckRuns(const Vector<SegmenterTestRun>& runs, |
| 46 FontOrientation orientation) { | 46 FontOrientation orientation) { |
| 47 String text(emptyString16Bit()); | 47 String text(emptyString16Bit); |
| 48 Vector<SegmenterExpectedRun> expect; | 48 Vector<SegmenterExpectedRun> expect; |
| 49 for (auto& run : runs) { | 49 for (auto& run : runs) { |
| 50 unsigned lengthBefore = text.length(); | 50 unsigned lengthBefore = text.length(); |
| 51 text.append(String::fromUTF8(run.text.c_str())); | 51 text.append(String::fromUTF8(run.text.c_str())); |
| 52 expect.push_back(SegmenterExpectedRun(lengthBefore, text.length(), | 52 expect.push_back(SegmenterExpectedRun(lengthBefore, text.length(), |
| 53 run.script, run.renderOrientation, | 53 run.script, run.renderOrientation, |
| 54 run.fontFallbackPriority)); | 54 run.fontFallbackPriority)); |
| 55 } | 55 } |
| 56 RunSegmenter runSegmenter(text.characters16(), text.length(), orientation); | 56 RunSegmenter runSegmenter(text.characters16(), text.length(), orientation); |
| 57 VerifyRuns(&runSegmenter, expect); | 57 VerifyRuns(&runSegmenter, expect); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 84 | 84 |
| 85 #define CHECK_RUNS_MIXED(...) \ | 85 #define CHECK_RUNS_MIXED(...) \ |
| 86 DECLARE_RUNSVECTOR(__VA_ARGS__); \ | 86 DECLARE_RUNSVECTOR(__VA_ARGS__); \ |
| 87 CheckRuns(runs, FontOrientation::VerticalMixed); | 87 CheckRuns(runs, FontOrientation::VerticalMixed); |
| 88 | 88 |
| 89 #define CHECK_RUNS_HORIZONTAL(...) \ | 89 #define CHECK_RUNS_HORIZONTAL(...) \ |
| 90 DECLARE_RUNSVECTOR(__VA_ARGS__); \ | 90 DECLARE_RUNSVECTOR(__VA_ARGS__); \ |
| 91 CheckRuns(runs, FontOrientation::Horizontal); | 91 CheckRuns(runs, FontOrientation::Horizontal); |
| 92 | 92 |
| 93 TEST_F(RunSegmenterTest, Empty) { | 93 TEST_F(RunSegmenterTest, Empty) { |
| 94 String empty(emptyString16Bit()); | 94 String empty(emptyString16Bit); |
| 95 RunSegmenter::RunSegmenterRange segmenterRange = { | 95 RunSegmenter::RunSegmenterRange segmenterRange = { |
| 96 0, 0, USCRIPT_INVALID_CODE, OrientationIterator::OrientationKeep}; | 96 0, 0, USCRIPT_INVALID_CODE, OrientationIterator::OrientationKeep}; |
| 97 RunSegmenter runSegmenter(empty.characters16(), empty.length(), | 97 RunSegmenter runSegmenter(empty.characters16(), empty.length(), |
| 98 FontOrientation::VerticalMixed); | 98 FontOrientation::VerticalMixed); |
| 99 ASSERT(!runSegmenter.consume(&segmenterRange)); | 99 ASSERT(!runSegmenter.consume(&segmenterRange)); |
| 100 ASSERT_EQ(segmenterRange.start, 0u); | 100 ASSERT_EQ(segmenterRange.start, 0u); |
| 101 ASSERT_EQ(segmenterRange.end, 0u); | 101 ASSERT_EQ(segmenterRange.end, 0u); |
| 102 ASSERT_EQ(segmenterRange.script, USCRIPT_INVALID_CODE); | 102 ASSERT_EQ(segmenterRange.script, USCRIPT_INVALID_CODE); |
| 103 ASSERT_EQ(segmenterRange.renderOrientation, | 103 ASSERT_EQ(segmenterRange.renderOrientation, |
| 104 OrientationIterator::OrientationKeep); | 104 OrientationIterator::OrientationKeep); |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 231 CHECK_RUNS_HORIZONTAL( | 231 CHECK_RUNS_HORIZONTAL( |
| 232 {{"աբգ", USCRIPT_ARMENIAN, OrientationIterator::OrientationKeep, | 232 {{"աբգ", USCRIPT_ARMENIAN, OrientationIterator::OrientationKeep, |
| 233 FontFallbackPriority::Text}, | 233 FontFallbackPriority::Text}, |
| 234 {"αβγ", USCRIPT_GREEK, OrientationIterator::OrientationKeep, | 234 {"αβγ", USCRIPT_GREEK, OrientationIterator::OrientationKeep, |
| 235 FontFallbackPriority::Text}, | 235 FontFallbackPriority::Text}, |
| 236 {"ԱԲԳ", USCRIPT_ARMENIAN, OrientationIterator::OrientationKeep, | 236 {"ԱԲԳ", USCRIPT_ARMENIAN, OrientationIterator::OrientationKeep, |
| 237 FontFallbackPriority::Text}}); | 237 FontFallbackPriority::Text}}); |
| 238 } | 238 } |
| 239 | 239 |
| 240 } // namespace blink | 240 } // namespace blink |
| OLD | NEW |