10fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org#!/usr/bin/env python 20fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org# Copyright (c) 2013 The Chromium Authors. All rights reserved. 30fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org# Use of this source code is governed by a BSD-style license that can be 40fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org# found in the LICENSE file. 50fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org 60fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org'''Unit tests for include.IncludeNode''' 70fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org 80fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.orgimport os 90fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.orgimport sys 100fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.orgif __name__ == '__main__': 110fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org sys.path.append(os.path.join(os.path.dirname(__file__), '../..')) 120fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org 130fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.orgimport os 140fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.orgimport StringIO 150fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.orgimport unittest 160fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org 170fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.orgfrom grit.node import misc 180fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.orgfrom grit.node import include 190fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.orgfrom grit.node import empty 200fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.orgfrom grit import grd_reader 210fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.orgfrom grit import util 220fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org 230fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org 240fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.orgclass IncludeNodeUnittest(unittest.TestCase): 250fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org def testGetPath(self): 260fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org root = misc.GritNode() 270fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org root.StartParsing(u'grit', None) 280fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org root.HandleAttribute(u'latest_public_release', u'0') 290fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org root.HandleAttribute(u'current_release', u'1') 300fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org root.HandleAttribute(u'base_dir', ur'..\resource') 310fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org release = misc.ReleaseNode() 320fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org release.StartParsing(u'release', root) 330fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org release.HandleAttribute(u'seq', u'1') 340fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org root.AddChild(release) 350fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org includes = empty.IncludesNode() 360fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org includes.StartParsing(u'includes', release) 370fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org release.AddChild(includes) 380fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org include_node = include.IncludeNode() 390fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org include_node.StartParsing(u'include', includes) 400fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org include_node.HandleAttribute(u'file', ur'flugel\kugel.pdf') 410fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org includes.AddChild(include_node) 420fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org root.EndParsing() 430fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org 440fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org self.assertEqual(root.ToRealPath(include_node.GetInputPath()), 450fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org util.normpath( 460fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org os.path.join(ur'../resource', ur'flugel/kugel.pdf'))) 470fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org 480fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org def testGetPathNoBasedir(self): 490fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org root = misc.GritNode() 500fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org root.StartParsing(u'grit', None) 510fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org root.HandleAttribute(u'latest_public_release', u'0') 520fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org root.HandleAttribute(u'current_release', u'1') 530fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org root.HandleAttribute(u'base_dir', ur'..\resource') 540fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org release = misc.ReleaseNode() 550fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org release.StartParsing(u'release', root) 560fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org release.HandleAttribute(u'seq', u'1') 570fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org root.AddChild(release) 580fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org includes = empty.IncludesNode() 590fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org includes.StartParsing(u'includes', release) 600fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org release.AddChild(includes) 610fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org include_node = include.IncludeNode() 620fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org include_node.StartParsing(u'include', includes) 630fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org include_node.HandleAttribute(u'file', ur'flugel\kugel.pdf') 640fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org include_node.HandleAttribute(u'use_base_dir', u'false') 650fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org includes.AddChild(include_node) 660fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org root.EndParsing() 670fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org 680fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org self.assertEqual(root.ToRealPath(include_node.GetInputPath()), 690fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org util.normpath( 700fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org os.path.join(ur'../', ur'flugel/kugel.pdf'))) 710fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org 720fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org 730fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.orgif __name__ == '__main__': 740fae8b05cb6f7d1995040d75313205d86945871ejoi@chromium.org unittest.main() 75