void WebViewDestructionWithHostWindow::SetUp()
{
    WebViewDestruction::SetUp();

    EXPECT_TRUE(m_window.initialize());
    EXPECT_HRESULT_SUCCEEDED(m_webView->setHostWindow(reinterpret_cast<OLE_HANDLE>(m_window.window())));
    EXPECT_HRESULT_SUCCEEDED(m_webView->initWithFrame(m_window.clientRect(), 0, 0));

    COMPtr<IWebViewPrivate> viewPrivate(Query, m_webView);
    ASSERT_NOT_NULL(viewPrivate);
    EXPECT_HRESULT_SUCCEEDED(viewPrivate->viewWindow(reinterpret_cast<OLE_HANDLE*>(&m_viewWindow)));
    EXPECT_TRUE(::IsWindow(m_viewWindow));
}
TEST_F(CLayoutTests, UserAccountControlLayout)
{
    CComPtr<ILayoutManager> pLayoutManager;
    CComPtr<IVariantObject> pLayoutObject;
    EXPECT_HRESULT_SUCCEEDED(LoadAndGetLayout(L"UserAccountControlLayout", &pLayoutManager, &pLayoutObject));

    { //Setup layout
        //CComPtr<IVariantObject> pInfoContainerObject;
        //EXPECT_HRESULT_SUCCEEDED(HrLayoutFindItemByName(pLayoutObject, L"InfoContainer", &pInfoContainerObject));
        //EXPECT_HRESULT_SUCCEEDED(HrLayoutSetVariantValueRecursive(pInfoContainerObject, L"visible", &CComVar(false)));
    }

    m_wnd.ResizeClient(WIDTH1, HEIGHT2);

    EXPECT_HRESULT_SUCCEEDED(BuildAndCompareLayout(pLayoutManager, pLayoutObject, UserAccountControlLayoutResult));
}
Esempio n. 3
0
HRESULT CScriptEnvTest::ExecuteScript(LPCTSTR source, EXCEPINFO *exc, CComVariant *result)
{
  CComQIPtr<IActiveScriptParse> parser = m_spEngine;
  
  DWORD dwFlags = SCRIPTTEXT_ISVISIBLE;

  if (result) dwFlags |= SCRIPTTEXT_ISEXPRESSION;
  
  HRESULT hr = parser->ParseScriptText(source, NULL, NULL, NULL, 0, 0, dwFlags, result, exc);

  if (SUCCEEDED(hr))
  {
    EXPECT_HRESULT_SUCCEEDED(m_spEngine->SetScriptState(SCRIPTSTATE_STARTED));

    EXPECT_EQ(SCRIPTSTATE_STARTED, m_host->m_state);
  }

  return hr;
}
void WebViewDestruction::SetUp()
{
    EXPECT_HRESULT_SUCCEEDED(WebKitCreateInstance(__uuidof(WebView), &m_webView));
}
TEST_F(WebViewDestructionWithHostWindow, CloseThenDestroyHostWindow)
{
    EXPECT_HRESULT_SUCCEEDED(m_webView->close());
    ::DestroyWindow(m_window.window());
}
TEST_F(WebViewDestructionWithHostWindow, DestroyViewWindowThenClose)
{
    ::DestroyWindow(m_viewWindow);
    EXPECT_HRESULT_SUCCEEDED(m_webView->close());
}
// Tests that calling IWebView::close without calling DestroyWindow, then releasing a WebView doesn't crash. <http://webkit.org/b/32827>
TEST_F(WebViewDestructionWithHostWindow, CloseWithoutDestroyViewWindow)
{
    EXPECT_HRESULT_SUCCEEDED(m_webView->close());
}
TEST_F(WebViewDestruction, CloseWithoutInitWithFrame)
{
    EXPECT_HRESULT_SUCCEEDED(m_webView->close());
}
Esempio n. 9
0
//ゲームの描画
void GameMain::Render(){
	//描画開始
//    const HRESULT hrClear = sys::Device::GetInst()->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(100, 100, 50), 1.0f, 0);
	
	const HRESULT hrClear = sys::Device::GetInst()->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0x00, 0x00, 0xff), 1.0f, 0);
	//const HRESULT hrClear = sys::Device::GetInst()->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0x00, 0x00, 0xff), 1.0f, 0);
	//正しく画面クリアされたかどうかtest
	EXPECT_HRESULT_SUCCEEDED(hrClear);

	//3Dの描画
	if(SUCCEEDED(sys::Device::GetInst()->BeginScene())){
		//フォントの描画テスト
		sys::DebugFont::GetInst()->DrawString( Format( _T("デバッグ実行中") ).str() );

		//描画環境の設定
		D3DXMATRIXA16 world;
		D3DXMATRIXA16 worldRot;
		D3DXMATRIXA16 worldTrans;
		D3DXMATRIXA16 worldScale;

		//スケール
		//D3DXMatrixScaling(&worldScale, 0.01f, 0.01f, 0.01f);
		D3DXMatrixScaling(&worldScale, 1.0f, 1.0f, 1.0f);

		//回転処理
		D3DXMatrixRotationY(&worldRot, sys::Time::GetInst()->GetTimeApp() / 1000.0f);

		//移動処理
		D3DXMatrixTranslation(&worldTrans, modelX, modelY, modelZ);

		//スケール×回転
		D3DXMatrixMultiply(&world, &worldScale, &worldRot);

		//×移動
		D3DXMatrixMultiply(&world, &world, &worldTrans);

		D3DXVECTOR3 vEyePt(0.0f, 2.0f, -4.0f);
		D3DXVECTOR3 vLookatPt(0.0f, 0.0f, 0.0f);
		D3DXVECTOR3 vUpVec(0.0f, 1.0f, 0.0f);
		D3DXMATRIXA16 view;
		D3DXMatrixLookAtLH(&view, &vEyePt, &vLookatPt, &vUpVec);
		sys::Device::GetInst()->SetTransform(D3DTS_VIEW, &view);
		D3DXMATRIXA16 proj;

		//視野角 アスペクト比 最近接距離 最遠方距離
		D3DXMatrixPerspectiveFovLH(&proj, D3DX_PI/ 4, 4.0f/3.0f,0.01f,100.0f);

		sys::Device::GetInst()->SetTransform(D3DTS_WORLD, &world);
		sys::Device::GetInst()->SetTransform(D3DTS_VIEW, &view);
		sys::Device::GetInst()->SetTransform(D3DTS_PROJECTION, &proj);
		

		//モデルを描画する関数オブジェクト
		//tuple<XFileのデータ(SmartPtr), ループカウンタ>
//        struct DrawModelFunctor{
//            void operator()(boost::tuples::tuple<SPXFileData, int> t){

//                i番目の要素
//                SPXFileData xData;

//                ループカウンタi
//                int i;

//                boost::tie(xData, i) = t;

//                BOOST_ASSERT(xData);

//                EXPECT_HRESULT_SUCCEEDED(sys::Device::GetInst()->SetMaterial( &xData->meshMaterials_[i] ));
//                
//                EXPECT_HRESULT_SUCCEEDED(sys::Device::GetInst()->SetTexture( 0, xData->textures_[i].GetRef() ));

//                xData->mesh_->DrawSubset(i);
//            }
//        };

		//描画
//        boost::for_each(
//            boost::combine(
//                *sys::Models::GetInst(), 
//                boost::counting_range(0, static_cast<int>(sys::Models::GetInst()->size() ) )
//            ),
//        DrawModelFunctor() );

//        

		//モデルデータの表示
		for(XFileArray::iterator it = sys::Models::GetInst()->begin(); it != sys::Models::GetInst()->end(); it++){
			const DWORD size = (*it)->numMaterials_;
			BOOST_ASSERT(0 < size);
			BOOST_ASSERT(size == (*it)->meshMaterials_.size());

			//マテリアルをセット
			for(DWORD i = 0; i < size; i++){
				sys::Device::GetInst()->SetMaterial( &(*it)->meshMaterials_.at(i) ); 
			}
			//テクスチャをセット
			for(DWORD i = 0; i < size; i++){
				sys::Device::GetInst()->SetTexture(0, (*it)->textures_.at(i).get() );
				(*it)->mesh_->DrawSubset(i);
			}
//             
		}

		//四角形のサイズ
//        const RECT rect2 = {200, 200, 250, 250};
//        const RECT rect3 = {2, 2, 4, 4};
//        const RECT rect4 = {0,0, 1000, 1000};
//        const RECT rect5 = {100, 100 ,50, 50};
//        const RECT rect6 = {100,100,150,150};
//        const RECT rect7 = {50, 50, 100, 100};


		//四角形の描画テスト
//        sys::Graphic::GetInst()->DrawRect(rect2);
//        sys::Graphic::GetInst()->DrawRect(rect3);
//        sys::Graphic::GetInst()->DrawRect(rect4);
//        sys::Graphic::GetInst()->DrawRect(rect5);
//        sys::Graphic::GetInst()->DrawRect(rect6);
//        sys::Graphic::GetInst()->DrawRect(rect7);

//        this->dinfo_->g->DrawRect(rect2);
//        this->dinfo_->g->DrawRect(rect3);
//        this->dinfo_->g->DrawRect(rect4);
//        this->dinfo_->g->DrawRect(rect5);
//        this->dinfo_->g->DrawRect(rect6);
//        this->dinfo_->g->DrawRect(rect7);


		//画像の描画
		const D3DXVECTOR3 pos(100, 100, 0);
		//sys::Graphic::GetInst()->DrawGraphic(content->GetTexture(_T("test")), pos);
		

		//作成したプリミティブの描画

		const HRESULT setSSResult = sys::Device::GetInst()->SetStreamSource(
				0,
				vertex->vertexBuffer.get(),
				0,
				sizeof(VertexImplF)
				);

		BOOST_ASSERT(SUCCEEDED(setSSResult));

		const HRESULT setfvfResult = sys::Device::GetInst()->SetFVF(D3DFVF_CUSTOMVERTEX);
		BOOST_ASSERT(SUCCEEDED(setfvfResult));

		//const HRESULT drawPrimitiveResult = sys::Device::GetInst()->DrawPrimitive(
		//		D3DPT_TRIANGLESTRIP,
		//		0,
		//		2);

		const HRESULT drawPrimitiveResult = sys::Device::GetInst()->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 1 );
		//BOOST_ASSERT(drawPrimitiveResult != D3DERR_INVALIDCALL);
		BOOST_ASSERT(SUCCEEDED(drawPrimitiveResult));

		//描画終了関数を呼び出すと共に成功したかどうかテスト
		EXPECT_HRESULT_SUCCEEDED(sys::Device::GetInst()->EndScene());

	}
	else
	{
		throw std::runtime_error("3Dの描画に失敗しました");
	}
	
	//円のサイズ left top right bottom
	const RECT circle_rect1 = {100, 100, 150, 150};
	const RECT circle_rect2 = {10, 10, 15, 15};

	//小さすぎて描画できない
//	const RECT circle_rect3 = {50, 50, 51, 51};
//    const RECT circle_rect4 = {0, 0, 1, 1};
//
//    const RECT circle_rect5 = {1000, 1000, 1500, 1500};


	//合格
//    const RECT circle_rect6 = {0, 0, 650, 550};

	//円を描画
//    sys::Graphic::GetInst()->DrawCircle(circle_rect1);
//    sys::Graphic::GetInst()->DrawCircle(circle_rect2);

	//小さすぎて描画できない
//    sys::Graphic::GetInst()->DrawCircle(circle_rect3);
//    sys::Graphic::GetInst()->DrawCircle(circle_rect4);

	//大きすぎても描画できない
//    sys::Graphic::GetInst()->DrawCircle(circle_rect5);

	//合格
//    sys::Graphic::GetInst()->DrawCircle(circle_rect6);

	const RECT rect2 = {200, 200, 250, 250};
	const RECT rect3 = {2, 2, 4, 4};
	const RECT rect4 = {0,0, 1000, 1000};
	const RECT rect5 = {100, 100 ,50, 50};
	const RECT rect6 = {100,100,150,150};
	const RECT rect7 = {50, 50, 100, 100};


	//ここでも四角形を描画してみる
//    this->dinfo_->g->DrawRect(rect2);
//    this->dinfo_->g->DrawRect(rect3);
//    this->dinfo_->g->DrawRect(rect4);
//    this->dinfo_->g->DrawRect(rect5);
//    this->dinfo_->g->DrawRect(rect6);
//    this->dinfo_->g->DrawRect(rect7);


	//次のバッファのコンテンツをプレゼンテーション
	sys::Device::GetInst()->Present(NULL, NULL, NULL, NULL);
}