# Copyright (c) 2015 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import unittest from tracing.mre import function_handle class ModuleToLoadTests(unittest.TestCase): def testExactlyOneHrefOrFilename(self): with self.assertRaises(Exception): function_handle.ModuleToLoad() with self.assertRaises(Exception): function_handle.ModuleToLoad('foo', 'foo') def testRepr(self): mtl0 = function_handle.ModuleToLoad(href='/foo') mtl1 = function_handle.ModuleToLoad(filename='foo.html') self.assertEquals(str(mtl0), 'ModuleToLoad(href="/foo")') self.assertEquals(str(mtl1), 'ModuleToLoad(filename="foo.html")') def testAsDict(self): mtl0 = function_handle.ModuleToLoad(href='/foo') mtl1 = function_handle.ModuleToLoad(filename='foo.html') self.assertEquals(mtl0.AsDict(), { 'href': '/foo' }) self.assertEquals(mtl1.AsDict(), { 'filename': 'foo.html' }) def testFromDict(self): module_dict0 = { 'href': '/foo' } module_dict1 = { 'filename': 'foo.html' } mtl0 = function_handle.ModuleToLoad.FromDict(module_dict0) mtl1 = function_handle.ModuleToLoad.FromDict(module_dict1) self.assertEquals(mtl0.href, '/foo') self.assertIsNone(mtl0.filename) self.assertEquals(mtl1.filename, 'foo.html') self.assertIsNone(mtl1.href) class FunctionHandleTests(unittest.TestCase): def testRepr(self): module = function_handle.ModuleToLoad(href='/foo') handle = function_handle.FunctionHandle([module], 'Bar') self.assertEquals( str(handle), 'FunctionHandle(modules_to_load=[ModuleToLoad(href="/foo")], ' 'function_name="Bar")') def testAsDict(self): module = function_handle.ModuleToLoad(href='/foo') handle = function_handle.FunctionHandle([module], 'Bar') self.assertEquals( handle.AsDict(), { 'modules_to_load': [{'href': '/foo'}], 'function_name': 'Bar' }) def testFromDict(self): handle_dict = { 'modules_to_load': [{'href': '/foo'}], 'function_name': 'Bar' } handle = function_handle.FunctionHandle.FromDict(handle_dict) self.assertEquals(len(handle.modules_to_load), 1) self.assertEquals(handle.modules_to_load[0].href, '/foo') self.assertEquals(handle.function_name, 'Bar')