00001 from __future__ import with_statement
00002
00003 import unittest
00004 from GPyUnit.util import DispatchEx
00005
00006 class TestGMEOLEApp(unittest.TestCase):
00007 def test_Exit(self):
00008 import win32com.client
00009 gme = DispatchEx("GME.Application")
00010 gme.Version
00011 gme.Exit()
00012
00013 del(gme)
00014
00015 def test_PIAs(self):
00016 import os.path
00017 self.assertTrue(os.path.isfile(r"c:\Windows\assembly\GAC_MSIL\GME\1.0.0.0__f240a760fe751c2e\GME.dll"))
00018
00019 def test_Console(self):
00020 import win32com.client
00021
00022 registrar = DispatchEx("Mga.MgaRegistrar")
00023 registrar.SetScriptEngineDisp(1, "JScript")
00024
00025 def _adjacent_file(file):
00026 import os.path
00027 return os.path.join(os.path.dirname(os.path.abspath(__file__)), file)
00028 self.gme = DispatchEx("GME.Application")
00029 self.gme.Version
00030 console = filter(lambda p: p.Name == "Console", self.gme.Panels)[0]
00031 intf = console.Interface
00032
00033 intf.SetContents('magicstring')
00034 self.assertEqual(intf.Contents, 'magicstring')
00035
00036 jscode = 'gme.ConsoleMessage("magic2string", 0);\n'
00037 with open(_adjacent_file('_console_utf16.js'), 'wb') as file:
00038 file.write('\xFF\xFE')
00039 file.write(unicode(jscode).encode('utf-16le'))
00040 intf.LoadScript(_adjacent_file('_console_utf16.js'))
00041 intf.RunLoadedScript()
00042 self.assertTrue(intf.Contents.find('magic2string') != -1, 'Console contents: "' + intf.Contents + '"')
00043
00044 with open(_adjacent_file('_console_ansi.js'), 'wb') as file:
00045 file.write(jscode.replace('magic2string', 'magic3string'))
00046 intf.LoadScript(_adjacent_file('_console_ansi.js'))
00047 intf.RunLoadedScript()
00048 self.assertTrue(intf.Contents.find('magic3string') != -1, 'Console contents: "' + intf.Contents + '"')
00049
00050 def setUp(self):
00051 self.gme = None
00052
00053 def tearDown(self):
00054 if self.gme:
00055 self.gme.Exit()
00056 del(self.gme)
00057
00058 if __name__ == "__main__":
00059 unittest.main()