TEST(FileFsEnum, All) { IFsEnum * enumObj = static_cast<IFsEnum*>(new CFileFsEnum); IFsEnumContext * enumContext = static_cast<IFsEnumContext*>(new CFileFsEnumContext); CTestEnumObserver * testObj = new CTestEnumObserver(); IFsEnum * zip = new CZipFsEnum; IVirtualFs * container = static_cast<IVirtualFs*>(new CFileFs); if (!enumObj || !enumContext || !testObj || !zip || !container) goto EXIT; ASSERT_HRESULT_SUCCEEDED(enumContext->SetMaxDepth(-1)); ASSERT_HRESULT_SUCCEEDED(enumContext->SetSearchPattern(L"*.*")); ASSERT_HRESULT_SUCCEEDED(container->Create(szSampleDir, 0)); ASSERT_HRESULT_SUCCEEDED(enumContext->SetSearchContainer(container)); ASSERT_HRESULT_SUCCEEDED(enumContext->SetFlags(IFsEnumContext::DetectOnly)); ASSERT_HRESULT_SUCCEEDED(enumObj->AddObserver(testObj)); ASSERT_HRESULT_SUCCEEDED(enumObj->AddArchiver(zip)); ASSERT_HRESULT_SUCCEEDED(enumObj->Enum(enumContext)); printf("\n\n Count = %d\n", testObj->GetFileCount()); ASSERT_HRESULT_SUCCEEDED(enumObj->RemoveArchiver(zip)); ASSERT_HRESULT_SUCCEEDED(enumObj->RemoveObserver(testObj)); EXIT: if (testObj) testObj->Release(); if (container) container->Release(); if (zip) zip->Release(); if (enumContext) enumContext->Release(); if (enumObj) enumObj->Release(); }
TEST(FileFsAttribute, Size) { IFsAttribute * fsAttr = new CFileFsAttribute(); ASSERT_HRESULT_SUCCEEDED(fsAttr->SetFilePath(szTestcase)); ULARGE_INTEGER fileSize; ASSERT_HRESULT_SUCCEEDED(fsAttr->Size(&fileSize)); ASSERT_EQ(1024*1024, fileSize.QuadPart); fsAttr->Release(); }
void CScriptEnvTest::LoadClass(CScriptEnvTest::DllGetClassObjectFunc fnDllGetClassObject, LPCTSTR name, REFCLSID clsid) { CComPtr<IClassFactory> spFactory; ASSERT_HRESULT_SUCCEEDED(fnDllGetClassObject(clsid, __uuidof(IClassFactory), (LPVOID *) &spFactory)); CComObjectNoLock<CClassFactoryConstructor> *ctor = new CComObjectNoLock<CClassFactoryConstructor>(); ctor->Attach(CComBSTR(name), spFactory.Detach()); m_host->m_items.Add(CComBSTR(name), ctor); ASSERT_HRESULT_SUCCEEDED(m_spEngine->AddNamedItem(name, SCRIPTITEM_GLOBALMEMBERS | SCRIPTITEM_ISVISIBLE)); }
void CScriptEnvTest::InitEngine() { CLSID clsidJavascript; ASSERT_HRESULT_SUCCEEDED(::CLSIDFromProgID(_T("JavaScript"), &clsidJavascript)); ASSERT_HRESULT_SUCCEEDED(m_spEngine.CoCreateInstance(clsidJavascript)); ASSERT_HRESULT_SUCCEEDED(m_spEngine->SetScriptSite(m_host.get())); CComQIPtr<IActiveScriptParse> parser = m_spEngine; ASSERT_HRESULT_SUCCEEDED(parser->InitNew()); ASSERT_EQ(SCRIPTSTATE_INITIALIZED, m_host->m_state); }
TEST_F(CScriptEnvTest, Properties) { ASSERT_HRESULT_SUCCEEDED(ExecuteScript(_T("var canvas = new Context2D();"))); EXCEPINFO exc; CComVariant result; ASSERT_HRESULT_SUCCEEDED(ExecuteScript(_T("canvas"), &exc, &result)); ASSERT_EQ(VT_DISPATCH, result.vt); ASSERT_NE((IDispatch *) NULL, result.pdispVal); ASSERT_HRESULT_SUCCEEDED(ExecuteScript(_T("canvas.canvas"), &exc, &result)); ASSERT_EQ(VT_DISPATCH, result.vt); ASSERT_EQ((IDispatch *) NULL, result.pdispVal); }
TEST_F(CScriptEnvTest, ExecuteScript) { EXCEPINFO exc; CComVariant result; ASSERT_HRESULT_SUCCEEDED(ExecuteScript(_T("1+2"), &exc, &result)); ASSERT_EQ(VT_I4, result.vt); ASSERT_EQ(3, result.intVal); ASSERT_EQ(SCRIPT_E_REPORTED, ExecuteScript(_T("nonexist"), &exc, &result)); }
void CScriptEnvTest::LoadExtension() { HMODULE hDll = ::LoadLibrary(_T("HTML5i.dll")); ASSERT_TRUE(NULL != hDll); DllGetClassObjectFunc fnDllGetClassObject = (DllGetClassObjectFunc) ::GetProcAddress(hDll, "DllGetClassObject"); CComPtr<ITypeLib> spTypeLib; ASSERT_HRESULT_SUCCEEDED(::LoadTypeLib(_T("HTML5i.dll"), &spTypeLib)); ASSERT_TRUE(NULL != fnDllGetClassObject); LoadClass(fnDllGetClassObject, _T("Context2D"), CLSID_Context2D); LoadClass(fnDllGetClassObject, _T("ContextWebGL"), CLSID_ContextWebGL); }
TEST(FileFs, All) { ULONG flags; BOOL isOpened; WCHAR szNewFile[MAX_PATH]; wcscpy_s(szNewFile, MAX_PATH, szTestcase); wcscat_s(szNewFile, MAX_PATH, L".new"); CopyFileW(szTestcase, szNewFile, FALSE); IVirtualFs * fs = new CFileFs(); ULONG creationFlags = IVirtualFs::fsRead | IVirtualFs::fsSharedRead | IVirtualFs::fsSharedWrite | IVirtualFs::fsOpenExisting | IVirtualFs::fsAttrNormal; ASSERT_HRESULT_SUCCEEDED(fs->Create(szNewFile, creationFlags)); ASSERT_HRESULT_SUCCEEDED(fs->IsOpened(&isOpened)); ASSERT_TRUE(isOpened); ASSERT_HRESULT_SUCCEEDED(fs->Close()); ASSERT_HRESULT_SUCCEEDED(fs->Create(szNewFile, 0)); ASSERT_HRESULT_SUCCEEDED(fs->IsOpened(&isOpened)); ASSERT_FALSE(isOpened); ASSERT_HRESULT_SUCCEEDED(fs->ReCreate(NULL, creationFlags)); ASSERT_HRESULT_SUCCEEDED(fs->IsOpened(&isOpened)); ASSERT_TRUE(isOpened); ASSERT_HRESULT_SUCCEEDED(fs->GetFlags(&flags)); ASSERT_EQ(creationFlags, flags); BSTR s; ASSERT_HRESULT_SUCCEEDED(fs->GetFullPath(&s)); ASSERT_STREQ(szNewFile, s); SysFreeString(s); ASSERT_HRESULT_SUCCEEDED(fs->GetFileName(&s)); ASSERT_STREQ(TEXT("testcase.bin.new"), s); SysFreeString(s); ASSERT_HRESULT_SUCCEEDED(fs->GetFileExt(&s)); ASSERT_STREQ(TEXT("new"), s); SysFreeString(s); ULONG fsType; ASSERT_HRESULT_SUCCEEDED(fs->GetFsType(&fsType)); ASSERT_EQ(IVirtualFs::basic, fsType); ASSERT_HRESULT_SUCCEEDED(fs->DeferredDelete()); ASSERT_HRESULT_SUCCEEDED(fs->Close()); fs->Release(); }
TEST_F(CScriptEnvTest, Constructor) { ASSERT_HRESULT_SUCCEEDED(ExecuteScript(_T("var canvas = new Context2D();"))); ASSERT_HRESULT_SUCCEEDED(ExecuteScript(_T("var webgl = new ContextWebGL();"))); }