# -*- coding: utf-8 -*- """ test_cpp_domain ~~~~~~~~~~~~~~~ Tests the C++ Domain :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. """ from util import * from sphinx.domains.cpp import DefinitionParser def parse(name, string): return getattr(DefinitionParser(string), 'parse_' + name)() def test_type_definitions(): """Tests the type definition parsing""" rv = parse('member_object', ' const std::string & name = 42') assert unicode(rv) == 'const std::string& name = 42' rv = parse('member_object', ' const std::string & name leftover') assert unicode(rv) == 'const std::string& name' rv = parse('member_object', 'const std::vector< unsigned int, long> &name') assert unicode(rv) == 'const std::vector& name' x = 'std::vector>& module::test(register ' \ 'foo, bar, std::string baz="foobar, blah, bleh") const = 0' assert unicode(parse('function', x)) == x x = 'module::myclass::operator std::vector()' assert unicode(parse('function', x)) == x x = 'std::vector> module::blah' assert unicode(parse('type_object', x)) == x assert unicode(parse('type_object', 'long long int foo')) == 'long long foo'