// Copyright 2015 PDFium 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 "core/fpdfapi/fpdf_font/font_int.h" #include "testing/gtest/include/gtest/gtest.h" namespace { bool uint_ranges_equal(uint8_t* a, uint8_t* b, size_t count) { for (size_t i = 0; i < count; ++i) { if (a[i] != b[i]) return false; } return true; } } // namespace TEST(fpdf_font_cid, CMap_GetCode) { EXPECT_EQ(0u, CPDF_CMapParser::CMap_GetCode("")); EXPECT_EQ(0u, CPDF_CMapParser::CMap_GetCode("<")); EXPECT_EQ(194u, CPDF_CMapParser::CMap_GetCode("", "")); EXPECT_EQ(5, range.m_CharSize); EXPECT_TRUE( CPDF_CMapParser::CMap_GetCodeRange(range, "<12345678>", "<87654321>")); EXPECT_EQ(4, range.m_CharSize); { uint8_t lower[4] = {18, 52, 86, 120}; uint8_t upper[4] = {135, 101, 67, 33}; EXPECT_TRUE(uint_ranges_equal(lower, range.m_Lower, range.m_CharSize)); EXPECT_TRUE(uint_ranges_equal(upper, range.m_Upper, range.m_CharSize)); } // Hex characters EXPECT_TRUE(CPDF_CMapParser::CMap_GetCodeRange(range, "", "")); EXPECT_EQ(1, range.m_CharSize); EXPECT_EQ(161, range.m_Lower[0]); EXPECT_EQ(243, range.m_Upper[0]); // The second string should return 0's if it is shorter EXPECT_TRUE(CPDF_CMapParser::CMap_GetCodeRange(range, "", "")); EXPECT_EQ(1, range.m_CharSize); EXPECT_EQ(161, range.m_Lower[0]); EXPECT_EQ(0, range.m_Upper[0]); }