forked from varia/varia.website
69 lines
2.6 KiB
Python
69 lines
2.6 KiB
Python
|
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
|