XmlDom_test.cpp revision ce5e56e243d262a9b65459c3bd0bb9eaadd40628
1/* 2 * Copyright (C) 2015 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17#include "xml/XmlDom.h" 18 19#include <sstream> 20#include <string> 21 22#include "test/Test.h" 23 24namespace aapt { 25 26constexpr const char* kXmlPreamble = 27 "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"; 28 29TEST(XmlDomTest, Inflate) { 30 std::stringstream in(kXmlPreamble); 31 in << R"EOF( 32 <Layout xmlns:android="http://schemas.android.com/apk/res/android" 33 android:layout_width="match_parent" 34 android:layout_height="wrap_content"> 35 <TextView android:id="@+id/id" 36 android:layout_width="wrap_content" 37 android:layout_height="wrap_content" /> 38 </Layout> 39 )EOF"; 40 41 const Source source = {"test.xml"}; 42 StdErrDiagnostics diag; 43 std::unique_ptr<xml::XmlResource> doc = xml::Inflate(&in, &diag, source); 44 ASSERT_NE(doc, nullptr); 45 46 xml::Namespace* ns = xml::NodeCast<xml::Namespace>(doc->root.get()); 47 ASSERT_NE(ns, nullptr); 48 EXPECT_EQ(ns->namespace_uri, xml::kSchemaAndroid); 49 EXPECT_EQ(ns->namespace_prefix, "android"); 50} 51 52} // namespace aapt 53