10e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org/* 20e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * Copyright 2011 Google Inc. All Rights Reserved. 30e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * 40e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * Licensed under the Apache License, Version 2.0 (the "License"); 50e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * you may not use this file except in compliance with the License. 60e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * You may obtain a copy of the License at 70e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * 80e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * http://www.apache.org/licenses/LICENSE-2.0 90e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * 100e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * Unless required by applicable law or agreed to in writing, software 110e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * distributed under the License is distributed on an "AS IS" BASIS, 120e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * See the License for the specific language governing permissions and 140e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * limitations under the License. 150e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org */ 160e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 170e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org#include "gtest/gtest.h" 180e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org#include "sfntly/font.h" 190e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org#include "sfntly/table/core/name_table.h" 200e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org#include "test/serialization_test.h" 210e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 220e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgnamespace sfntly { 230e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 240e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgconst int32_t NAME_FORMAT = 0; 250e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgconst int32_t NAME_COUNT = 75; 260e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgconst NameTable::NameEntryId NAME_IDS[] = { 270e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org NameTable::NameEntryId(1, 0, 0, 0), // 0 280e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org NameTable::NameEntryId(1, 0, 0, 1), // 1 290e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org NameTable::NameEntryId(1, 0, 0, 2), // 2 300e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org NameTable::NameEntryId(1, 0, 0, 3), // 3 312a86ce22ccc387dfa6f8a98ce3eba5c1e6f9e538buildbot@webrtc.org NameTable::NameEntryId(1, 0, 0, 4), // 4 322a86ce22ccc387dfa6f8a98ce3eba5c1e6f9e538buildbot@webrtc.org NameTable::NameEntryId(1, 0, 0, 5), // 5 330e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org NameTable::NameEntryId(1, 0, 0, 6), // 6 340e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org NameTable::NameEntryId(1, 0, 0, 9), // 7 350e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org NameTable::NameEntryId(1, 0, 0, 11), // 8 360e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org NameTable::NameEntryId(1, 0, 0, 12), // 9 370e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org}; 380e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgconst int32_t NAME_IDS_TEST = 10; 390e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 400e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgstatic bool VerifyNAME(Table* table) { 410e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org // TODO(arthurhsu): Better testing can be done here. Right now we just 420e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org // iterate through the entries and get entry ids. 430e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org NameTablePtr name = down_cast<NameTable*>(table); 440e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org if (name == NULL) { 450e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return false; 460e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org } 470e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 480e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org EXPECT_EQ(name->Format(), NAME_FORMAT); 490e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org EXPECT_EQ(name->NameCount(), NAME_COUNT); 500e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org fprintf(stderr, "checking name entry: "); 510e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org for (int32_t i = 0; i < NAME_IDS_TEST; ++i) { 520e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org fprintf(stderr, "%d ", i); 530e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org EXPECT_EQ(name->PlatformId(i), NAME_IDS[i].platform_id()); 540e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org EXPECT_EQ(name->EncodingId(i), NAME_IDS[i].encoding_id()); 550e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org EXPECT_EQ(name->LanguageId(i), NAME_IDS[i].language_id()); 560e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org EXPECT_EQ(name->NameId(i), NAME_IDS[i].name_id()); 570e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org } 580e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org fprintf(stderr, "\n"); 590e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return true; 600e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org} 610e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 620e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgbool VerifyNAME(Table* original, Table* target) { 630e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org EXPECT_TRUE(VerifyNAME(original)); 640e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org EXPECT_TRUE(VerifyNAME(target)); 650e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return true; 660e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org} 670e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 680e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org} // namespace sfntly 69f99f1011aa4cd22bd86ba2e4f7d239ea1b766ec8wu@webrtc.org