from unittest import TestCase from docutils.core import publish_string from docutils.parsers.rst import directives from unitywebgl import config from unitywebgl.UnityGameDirective import UnityWebgl class TestUnityWebgl(TestCase): def test_directive_basic(self): # test directive html output with default template # and settings directives.register_directive('unitywebgl', UnityWebgl) config.GAMES_ROOT_DIR = '/test_games_root' config.TEMPLATE_PATH = '/test_template_path/template' config.DEFAULT_WIDTH = 960 config.DEFAULT_HEIGHT = 600 html =['<link rel="stylesheet" href="/test_template_path/template/style.css">', '<script src="/test_template_path/template/UnityProgress.js">', '<script src="/test_games_root/testgame/Build/UnityLoader.js">', '<script>\n var gameInstance = UnityLoader.instantiate("gameContainer", "/test_games_root/testgame/Build/testgame.json", {onProgress: UnityProgress});\n </script>', '<div id="gameContainer" style="width: 960px; height: 600px; left: 50%; transform: translateX(-50%);"></div>'] res = publish_string('.. unitywebgl:: testgame', writer_name='html', settings_overrides={'output_encoding': 'unicode'}) passed = True for line in html: if line not in res: passed = False break assert passed def test_directive_with_params(self): # test directive html output with all optional parameters, # default template and settings directives.register_directive('unitywebgl', UnityWebgl) config.GAMES_ROOT_DIR = 'test_games_root' config.TEMPLATE_PATH = 'test_template_path' config.DEFAULT_WIDTH = 960 config.DEFAULT_HEIGHT = 600 html =['<link rel="stylesheet" href="/games2/template2/style.css">', '<script src="/games2/template2/UnityProgress.js">', '<script src="/games2/testgame/Build/UnityLoader.js">', '<script>\n var gameInstance = UnityLoader.instantiate("gameContainer", "/games2/testgame/Build/testgame.json", {onProgress: UnityProgress});\n </script>', '<div id="gameContainer" style="width: 640px; height: 480px; left: 50%; transform: translateX(-50%);"></div>'] d = '.. unitywebgl:: testgame\n\t:gameroot: /games2\n\t:template: /games2/template2\n\t:width: 640\n\t:height: 480' res = publish_string(d, writer_name='html', settings_overrides={'output_encoding': 'unicode'}) passed = True for line in html: if line not in res: passed = False break assert passed