Updated CBrowse into a mini-test app
git-svn-id: svn://10.0.0.236/trunk@24116 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
fe3b92e60b
commit
e65e3b7805
@ -2,6 +2,7 @@
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
#include "cbrowse.h"
|
||||
#include "CBrowseDlg.h"
|
||||
|
||||
@ -11,8 +12,28 @@
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
static const CLSID clsidMozilla =
|
||||
{ 0x1339B54C, 0x3453, 0x11D2, { 0x93, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } };
|
||||
#include <math.h>
|
||||
#include <fpieee.h>
|
||||
#include <float.h>
|
||||
|
||||
#include <signal.h>
|
||||
|
||||
void __cdecl fperr(int sig)
|
||||
{
|
||||
CString sError;
|
||||
sError.Format("FP Error %08x", sig);
|
||||
AfxMessageBox(sError);
|
||||
}
|
||||
|
||||
TCHAR *aURLs[] =
|
||||
{
|
||||
_T("http://whippy"),
|
||||
_T("http://whippy/mozilla/mozilla.htm"),
|
||||
_T("http://www.mozilla.org"),
|
||||
_T("http://www.yahoo.com"),
|
||||
_T("http://www.netscape.com"),
|
||||
_T("http://www.microsoft.com")
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CBrowseDlg dialog
|
||||
@ -20,21 +41,30 @@ static const CLSID clsidMozilla =
|
||||
CBrowseDlg::CBrowseDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CBrowseDlg::IDD, pParent)
|
||||
{
|
||||
signal(SIGFPE, fperr);
|
||||
double x = 0.0;
|
||||
double y = 1.0/x;
|
||||
|
||||
//{{AFX_DATA_INIT(CBrowseDlg)
|
||||
m_sURL = _T("");
|
||||
m_szTestDescription = _T("");
|
||||
//}}AFX_DATA_INIT
|
||||
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
|
||||
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
|
||||
|
||||
m_sURL = _T("http://www.mozilla.com");
|
||||
|
||||
m_pControlSite = NULL;
|
||||
m_clsid = CLSID_NULL;
|
||||
}
|
||||
|
||||
void CBrowseDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CBrowseDlg)
|
||||
DDX_Text(pDX, IDC_URL, m_sURL);
|
||||
DDX_Control(pDX, IDC_RUNTEST, m_btnRunTest);
|
||||
DDX_Control(pDX, IDC_URL, m_cmbURLs);
|
||||
DDX_Control(pDX, IDC_TESTLIST, m_tcTests);
|
||||
DDX_Control(pDX, IDC_LISTMESSAGES, m_lbMessages);
|
||||
DDX_Text(pDX, IDC_TESTDESCRIPTION, m_szTestDescription);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
@ -43,9 +73,19 @@ BEGIN_MESSAGE_MAP(CBrowseDlg, CDialog)
|
||||
ON_WM_PAINT()
|
||||
ON_WM_QUERYDRAGICON()
|
||||
ON_BN_CLICKED(IDC_GO, OnGo)
|
||||
ON_BN_CLICKED(IDC_RUNTEST, OnRuntest)
|
||||
ON_BN_CLICKED(IDC_BACKWARD, OnBackward)
|
||||
ON_BN_CLICKED(IDC_FORWARD, OnForward)
|
||||
ON_NOTIFY(TVN_SELCHANGED, IDC_TESTLIST, OnSelchangedTestlist)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
#define IL_CLOSEDFOLDER 0
|
||||
#define IL_OPENFOLDER 1
|
||||
#define IL_TEST 2
|
||||
#define IL_TESTFAILED 3
|
||||
#define IL_TESTPASSED 4
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CBrowseDlg message handlers
|
||||
|
||||
@ -58,16 +98,52 @@ BOOL CBrowseDlg::OnInitDialog()
|
||||
SetIcon(m_hIcon, TRUE); // Set big icon
|
||||
SetIcon(m_hIcon, FALSE); // Set small icon
|
||||
|
||||
// Image list
|
||||
m_cImageList.Create(16, 16, ILC_COLOR | ILC_MASK, 0, 10);
|
||||
m_cImageList.Add(AfxGetApp()->LoadIcon(IDI_CLOSEDFOLDER));
|
||||
m_cImageList.Add(AfxGetApp()->LoadIcon(IDI_OPENFOLDER));
|
||||
m_cImageList.Add(AfxGetApp()->LoadIcon(IDI_TEST));
|
||||
m_cImageList.Add(AfxGetApp()->LoadIcon(IDI_TESTFAILED));
|
||||
m_cImageList.Add(AfxGetApp()->LoadIcon(IDI_TESTPASSED));
|
||||
m_tcTests.SetImageList(&m_cImageList, TVSIL_NORMAL);
|
||||
for (int i = 0; i < nTestSets; i++)
|
||||
{
|
||||
TestSet *pTestSet = &aTestSets[i];
|
||||
HTREEITEM hParent = m_tcTests.InsertItem(pTestSet->szName, IL_CLOSEDFOLDER, IL_CLOSEDFOLDER);
|
||||
m_tcTests.SetItemData(hParent, (DWORD) pTestSet);
|
||||
|
||||
for (int j = 0; j < pTestSet->nTests; j++)
|
||||
{
|
||||
Test *pTest = &pTestSet->aTests[j];
|
||||
HTREEITEM hTest = m_tcTests.InsertItem(pTest->szName, IL_TEST, IL_TEST, hParent);
|
||||
if (hTest)
|
||||
{
|
||||
m_tcTests.SetItemData(hTest, (DWORD) pTest);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Set up some URLs. The first couple are internal
|
||||
for (i = 0; i < sizeof(aURLs) / sizeof(aURLs[0]); i++)
|
||||
{
|
||||
m_cmbURLs.AddString(aURLs[i]);
|
||||
}
|
||||
m_cmbURLs.SetCurSel(0);
|
||||
|
||||
// Get the position of the browser marker
|
||||
CRect rcMarker;
|
||||
GetDlgItem(IDC_BROWSER_MARKER)->GetWindowRect(&rcMarker);
|
||||
ScreenToClient(rcMarker);
|
||||
|
||||
CControlSiteInstance::CreateInstance(&m_pControlSite);
|
||||
GetDlgItem(IDC_BROWSER_MARKER)->DestroyWindow();
|
||||
|
||||
CControlSiteInstance::CreateInstance(&m_pControlSite);
|
||||
if (m_pControlSite)
|
||||
{
|
||||
m_pControlSite->Attach(clsidMozilla, GetSafeHwnd(), rcMarker, NULL);
|
||||
PropertyList pl;
|
||||
m_pControlSite->Create(m_clsid, pl);
|
||||
m_pControlSite->Attach(GetSafeHwnd(), rcMarker, NULL);
|
||||
m_pControlSite->SetPosition(rcMarker);
|
||||
}
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
@ -98,7 +174,9 @@ void CBrowseDlg::OnPaint()
|
||||
}
|
||||
else
|
||||
{
|
||||
CDialog::OnPaint();
|
||||
CPaintDC dc(this);
|
||||
|
||||
m_pControlSite->Draw(dc.m_hDC);
|
||||
}
|
||||
}
|
||||
|
||||
@ -109,29 +187,151 @@ HCURSOR CBrowseDlg::OnQueryDragIcon()
|
||||
return (HCURSOR) m_hIcon;
|
||||
}
|
||||
|
||||
void CBrowseDlg::OnGo()
|
||||
HRESULT CBrowseDlg::GetWebBrowser(IWebBrowser **pWebBrowser)
|
||||
{
|
||||
UpdateData();
|
||||
if (pWebBrowser == NULL)
|
||||
{
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
|
||||
// If there's a browser control, use it to navigate to the specified URL
|
||||
*pWebBrowser = NULL;
|
||||
|
||||
if (m_pControlSite)
|
||||
{
|
||||
IUnknown *pIUnkBrowser = NULL;
|
||||
|
||||
m_pControlSite->GetControlUnknown(&pIUnkBrowser);
|
||||
if (pIUnkBrowser)
|
||||
{
|
||||
IWebBrowser *pIWebBrowser = NULL;
|
||||
pIUnkBrowser->QueryInterface(IID_IWebBrowser, (void **) &pIWebBrowser);
|
||||
if (pIWebBrowser)
|
||||
pIUnkBrowser->QueryInterface(IID_IWebBrowser, (void **) pWebBrowser);
|
||||
if (*pWebBrowser)
|
||||
{
|
||||
BSTR bstrURL = m_sURL.AllocSysString();
|
||||
pIWebBrowser->Navigate(bstrURL, NULL, NULL, NULL, NULL);
|
||||
::SysFreeString(bstrURL);
|
||||
pIWebBrowser->Release();
|
||||
return S_OK;
|
||||
}
|
||||
pIUnkBrowser->Release();
|
||||
}
|
||||
}
|
||||
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
void CBrowseDlg::OnGo()
|
||||
{
|
||||
UpdateData();
|
||||
|
||||
IWebBrowser *pIWebBrowser = NULL;
|
||||
if (SUCCEEDED(GetWebBrowser(&pIWebBrowser)))
|
||||
{
|
||||
int nItem = m_cmbURLs.GetCurSel();
|
||||
CString szURL = aURLs[nItem];
|
||||
|
||||
BSTR bstrURL = szURL.AllocSysString();
|
||||
pIWebBrowser->Navigate(bstrURL, NULL, NULL, NULL, NULL);
|
||||
::SysFreeString(bstrURL);
|
||||
pIWebBrowser->Release();
|
||||
}
|
||||
}
|
||||
|
||||
void CBrowseDlg::OnBackward()
|
||||
{
|
||||
IWebBrowser *pIWebBrowser = NULL;
|
||||
if (SUCCEEDED(GetWebBrowser(&pIWebBrowser)))
|
||||
{
|
||||
pIWebBrowser->GoBack();
|
||||
pIWebBrowser->Release();
|
||||
}
|
||||
}
|
||||
|
||||
void CBrowseDlg::OnForward()
|
||||
{
|
||||
IWebBrowser *pIWebBrowser = NULL;
|
||||
if (SUCCEEDED(GetWebBrowser(&pIWebBrowser)))
|
||||
{
|
||||
pIWebBrowser->GoForward();
|
||||
pIWebBrowser->Release();
|
||||
}
|
||||
}
|
||||
|
||||
void CBrowseDlg::OnRuntest()
|
||||
{
|
||||
HTREEITEM hItem = m_tcTests.GetNextItem(NULL, TVGN_FIRSTVISIBLE);
|
||||
while (hItem)
|
||||
{
|
||||
UINT nState;
|
||||
|
||||
nState = m_tcTests.GetItemState(hItem, TVIS_SELECTED);
|
||||
if (!m_tcTests.ItemHasChildren(hItem) && nState & TVIS_SELECTED)
|
||||
{
|
||||
Test *pTest = (Test *) m_tcTests.GetItemData(hItem);
|
||||
TestResult nResult = trFailed;
|
||||
if (pTest && pTest->pfn)
|
||||
{
|
||||
BrowserInfo cInfo;
|
||||
|
||||
cInfo.clsid = m_clsid;
|
||||
cInfo.pControlSite = m_pControlSite;
|
||||
cInfo.pIUnknown = NULL;
|
||||
if (cInfo.pControlSite)
|
||||
{
|
||||
cInfo.pControlSite->GetControlUnknown(&cInfo.pIUnknown);
|
||||
}
|
||||
nResult = pTest->pfn(&cInfo);
|
||||
if (cInfo.pIUnknown)
|
||||
{
|
||||
cInfo.pIUnknown->Release();
|
||||
}
|
||||
}
|
||||
if (nResult == trPassed)
|
||||
{
|
||||
m_tcTests.SetItemImage(hItem, IL_TESTPASSED, IL_TESTPASSED);
|
||||
}
|
||||
else if (nResult == trFailed)
|
||||
{
|
||||
m_tcTests.SetItemImage(hItem, IL_TESTFAILED, IL_TESTFAILED);
|
||||
}
|
||||
else if (nResult == trPartial)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
}
|
||||
|
||||
hItem = m_tcTests.GetNextItem(hItem, TVGN_NEXTVISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void CBrowseDlg::OnSelchangedTestlist(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
{
|
||||
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
|
||||
|
||||
BOOL bItemSelected = FALSE;
|
||||
m_szTestDescription.Empty();
|
||||
|
||||
HTREEITEM hItem = m_tcTests.GetNextItem(NULL, TVGN_FIRSTVISIBLE);
|
||||
while (hItem)
|
||||
{
|
||||
UINT nState;
|
||||
|
||||
nState = m_tcTests.GetItemState(hItem, TVIS_SELECTED);
|
||||
if (nState & TVIS_SELECTED)
|
||||
{
|
||||
bItemSelected = TRUE;
|
||||
if (m_tcTests.ItemHasChildren(hItem))
|
||||
{
|
||||
TestSet *pTestSet = (TestSet *) m_tcTests.GetItemData(hItem);
|
||||
m_szTestDescription = pTestSet->szDesc;
|
||||
}
|
||||
else
|
||||
{
|
||||
Test *pTest = (Test *) m_tcTests.GetItemData(hItem);
|
||||
m_szTestDescription = pTest->szDesc;
|
||||
}
|
||||
}
|
||||
|
||||
hItem = m_tcTests.GetNextItem(hItem, TVGN_NEXTVISIBLE);
|
||||
}
|
||||
|
||||
UpdateData(FALSE);
|
||||
m_btnRunTest.EnableWindow(bItemSelected);
|
||||
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
@ -16,13 +16,20 @@ class CBrowseDlg : public CDialog
|
||||
// Construction
|
||||
public:
|
||||
CControlSiteInstance *m_pControlSite;
|
||||
CLSID m_clsid;
|
||||
|
||||
CBrowseDlg(CWnd* pParent = NULL); // standard constructor
|
||||
|
||||
HRESULT GetWebBrowser(IWebBrowser **pWebBrowser);
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CBrowseDlg)
|
||||
enum { IDD = IDD_CBROWSE_DIALOG };
|
||||
CString m_sURL;
|
||||
CButton m_btnRunTest;
|
||||
CComboBox m_cmbURLs;
|
||||
CTreeCtrl m_tcTests;
|
||||
CListBox m_lbMessages;
|
||||
CString m_szTestDescription;
|
||||
//}}AFX_DATA
|
||||
|
||||
// ClassWizard generated virtual function overrides
|
||||
@ -34,6 +41,7 @@ public:
|
||||
// Implementation
|
||||
protected:
|
||||
HICON m_hIcon;
|
||||
CImageList m_cImageList;
|
||||
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CBrowseDlg)
|
||||
@ -41,6 +49,10 @@ protected:
|
||||
afx_msg void OnPaint();
|
||||
afx_msg HCURSOR OnQueryDragIcon();
|
||||
afx_msg void OnGo();
|
||||
afx_msg void OnRuntest();
|
||||
afx_msg void OnBackward();
|
||||
afx_msg void OnForward();
|
||||
afx_msg void OnSelchangedTestlist(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
92
mozilla/webshell/embed/ActiveX/tests/cbrowse/PickerDlg.cpp
Normal file
92
mozilla/webshell/embed/ActiveX/tests/cbrowse/PickerDlg.cpp
Normal file
@ -0,0 +1,92 @@
|
||||
// PickerDlg.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "cbrowse.h"
|
||||
#include "PickerDlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
// CLSIDs for the Mozilla and IE browser controls
|
||||
|
||||
static const CLSID CLSID_Mozilla =
|
||||
{ 0x1339B54C, 0x3453, 0x11D2, { 0x93, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } };
|
||||
|
||||
static const CLSID CLSID_InternetExplorer =
|
||||
{ 0x8856F961, 0x340A, 0x11D0, { 0xA9, 0x6B, 0x00, 0xC0, 0x4F, 0xD7, 0x05, 0xA2 } };
|
||||
|
||||
struct BrowserControl
|
||||
{
|
||||
TCHAR *szName;
|
||||
const CLSID *clsid;
|
||||
};
|
||||
|
||||
BrowserControl aControls[] =
|
||||
{
|
||||
{ _T("Mozilla Control"), &CLSID_Mozilla },
|
||||
{ _T("Internet Explorer Control"), &CLSID_InternetExplorer }
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CPickerDlg dialog
|
||||
|
||||
|
||||
CPickerDlg::CPickerDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CPickerDlg::IDD, pParent)
|
||||
{
|
||||
//{{AFX_DATA_INIT(CPickerDlg)
|
||||
//}}AFX_DATA_INIT
|
||||
m_clsid = CLSID_NULL;
|
||||
}
|
||||
|
||||
|
||||
void CPickerDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CPickerDlg)
|
||||
DDX_Control(pDX, IDC_LISTBROWSER, m_lbPicker);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CPickerDlg, CDialog)
|
||||
//{{AFX_MSG_MAP(CPickerDlg)
|
||||
ON_BN_CLICKED(IDOK, OnOk)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CPickerDlg message handlers
|
||||
|
||||
BOOL CPickerDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
for (int i = 0; i < sizeof(aControls) / sizeof(aControls[0]); i++)
|
||||
{
|
||||
m_lbPicker.AddString(aControls[i].szName);
|
||||
}
|
||||
m_lbPicker.SetCurSel(0);
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// EXCEPTION: OCX Property Pages should return FALSE
|
||||
}
|
||||
|
||||
void CPickerDlg::OnOk()
|
||||
{
|
||||
int nItem = m_lbPicker.GetCurSel();
|
||||
if (nItem == LB_ERR)
|
||||
{
|
||||
AfxMessageBox(IDS_CHOOSEBROWSER);
|
||||
return;
|
||||
}
|
||||
|
||||
m_clsid = *aControls[nItem].clsid;
|
||||
|
||||
EndDialog(IDOK);
|
||||
}
|
||||
|
||||
48
mozilla/webshell/embed/ActiveX/tests/cbrowse/PickerDlg.h
Normal file
48
mozilla/webshell/embed/ActiveX/tests/cbrowse/PickerDlg.h
Normal file
@ -0,0 +1,48 @@
|
||||
#if !defined(AFX_PICKERDLG_H__648FC652_D34B_11D2_A255_000000000000__INCLUDED_)
|
||||
#define AFX_PICKERDLG_H__648FC652_D34B_11D2_A255_000000000000__INCLUDED_
|
||||
|
||||
#if _MSC_VER >= 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER >= 1000
|
||||
// PickerDlg.h : header file
|
||||
//
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CPickerDlg dialog
|
||||
|
||||
class CPickerDlg : public CDialog
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CPickerDlg(CWnd* pParent = NULL); // standard constructor
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CPickerDlg)
|
||||
enum { IDD = IDD_PICKBROWSER };
|
||||
CListBox m_lbPicker;
|
||||
//}}AFX_DATA
|
||||
|
||||
CLSID m_clsid;
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CPickerDlg)
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CPickerDlg)
|
||||
afx_msg void OnOk();
|
||||
virtual BOOL OnInitDialog();
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_PICKERDLG_H__648FC652_D34B_11D2_A255_000000000000__INCLUDED_)
|
||||
@ -28,9 +28,23 @@ extern CComModule _Module;
|
||||
#include <atlctl.h>
|
||||
|
||||
#include <exdisp.h>
|
||||
#include <mshtml.h>
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <list>
|
||||
|
||||
// Define some string classes
|
||||
typedef std::basic_string<TCHAR> tstring;
|
||||
|
||||
#include "..\..\BrowserDiagnostics.h"
|
||||
#include "..\..\PropertyList.h"
|
||||
#include "..\..\PropertyBag.h"
|
||||
#include "..\..\ControlSiteIPFrame.h"
|
||||
#include "..\..\ControlSite.h"
|
||||
|
||||
#include "Tests.h"
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
|
||||
|
||||
|
||||
121
mozilla/webshell/embed/ActiveX/tests/cbrowse/Tests.cpp
Normal file
121
mozilla/webshell/embed/ActiveX/tests/cbrowse/Tests.cpp
Normal file
@ -0,0 +1,121 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "NPL"); you may not use this file except in
|
||||
* compliance with the NPL. You may obtain a copy of the NPL at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||||
* for the specific language governing rights and limitations under the
|
||||
* NPL.
|
||||
*
|
||||
* The Initial Developer of this code under the NPL is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
TestResult __cdecl tstDocument(BrowserInfo *pInfo)
|
||||
{
|
||||
CIPtr(IHTMLDocument2) cpDocElement;
|
||||
pInfo->GetDocument(&cpDocElement);
|
||||
if (cpDocElement == NULL)
|
||||
{
|
||||
return trFailed;
|
||||
}
|
||||
|
||||
return trPassed;
|
||||
}
|
||||
|
||||
TestResult __cdecl tstTesters(BrowserInfo *pInfo)
|
||||
{
|
||||
AfxMessageBox("Test architecture is reasonably sane!");
|
||||
return trPassed;
|
||||
}
|
||||
|
||||
TestResult __cdecl tstControlActive(BrowserInfo *pInfo)
|
||||
{
|
||||
CControlSiteInstance *pControlSite = pInfo->pControlSite;
|
||||
if (pControlSite == NULL || !pControlSite->IsInPlaceActive())
|
||||
{
|
||||
return trFailed;
|
||||
}
|
||||
return trPassed;
|
||||
}
|
||||
|
||||
TestResult __cdecl tstIWebBrowser(BrowserInfo *pInfo)
|
||||
{
|
||||
if (pInfo->pIUnknown == NULL)
|
||||
{
|
||||
return trFailed;
|
||||
}
|
||||
IWebBrowser *pIWebBrowser = NULL;
|
||||
pInfo->pIUnknown->QueryInterface(IID_IWebBrowser, (void **) &pIWebBrowser);
|
||||
if (pIWebBrowser)
|
||||
{
|
||||
pIWebBrowser->Release();
|
||||
return trPassed;
|
||||
}
|
||||
|
||||
return trFailed;
|
||||
}
|
||||
TestResult __cdecl tstIWebBrowser2(BrowserInfo *pInfo)
|
||||
{
|
||||
if (pInfo->pIUnknown == NULL)
|
||||
{
|
||||
return trFailed;
|
||||
}
|
||||
IWebBrowser2 *pIWebBrowser = NULL;
|
||||
pInfo->pIUnknown->QueryInterface(IID_IWebBrowser2, (void **) &pIWebBrowser);
|
||||
if (pIWebBrowser)
|
||||
{
|
||||
pIWebBrowser->Release();
|
||||
return trPassed;
|
||||
}
|
||||
|
||||
return trFailed;
|
||||
}
|
||||
|
||||
|
||||
TestResult __cdecl tstIWebBrowserApp(BrowserInfo *pInfo)
|
||||
{
|
||||
if (pInfo->pIUnknown == NULL)
|
||||
{
|
||||
return trFailed;
|
||||
}
|
||||
IWebBrowser2 *pIWebBrowser = NULL;
|
||||
pInfo->pIUnknown->QueryInterface(IID_IWebBrowserApp, (void **) &pIWebBrowser);
|
||||
if (pIWebBrowser)
|
||||
{
|
||||
pIWebBrowser->Release();
|
||||
return trPassed;
|
||||
}
|
||||
|
||||
return trFailed;
|
||||
}
|
||||
|
||||
Test aBasic[] =
|
||||
{
|
||||
{ _T("Test Tester"), _T("Ensure that the testing architecture is working"), tstTesters },
|
||||
{ _T("Control basics"), _T("Ensure that the browser control is active"), tstControlActive },
|
||||
{ _T("IWebBrowser"), _T("Test if control has an IWebBrowser interface"), tstIWebBrowser },
|
||||
{ _T("IWebBrowser2"), _T("Test if control has an IWebBrowser2 interface"), tstIWebBrowser2 },
|
||||
{ _T("IWebBrowserApp"), _T("Test if control has an IWebBrowserApp interface"), tstIWebBrowserApp }
|
||||
};
|
||||
|
||||
Test aDHTML[] =
|
||||
{
|
||||
{ _T("get_Document"), _T("Test if browser has a top level element"), tstDocument }
|
||||
};
|
||||
|
||||
TestSet aTestSets[] =
|
||||
{
|
||||
{ _T("Basic"), _T("Basic sanity tests"), 5, aBasic },
|
||||
{ _T("Browsing"), _T("Browsing and navigation tests"), 0, NULL },
|
||||
{ _T("DHTML"), _T("Test the DOM"), 1, aDHTML }
|
||||
};
|
||||
|
||||
int nTestSets = sizeof(aTestSets) / sizeof(aTestSets[0]);
|
||||
89
mozilla/webshell/embed/ActiveX/tests/cbrowse/Tests.h
Normal file
89
mozilla/webshell/embed/ActiveX/tests/cbrowse/Tests.h
Normal file
@ -0,0 +1,89 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "NPL"); you may not use this file except in
|
||||
* compliance with the NPL. You may obtain a copy of the NPL at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||||
* for the specific language governing rights and limitations under the
|
||||
* NPL.
|
||||
*
|
||||
* The Initial Developer of this code under the NPL is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
#ifndef TESTS_H
|
||||
#define TESTS_H
|
||||
|
||||
#define CIPtr(iface) \
|
||||
CComQIPtr< iface, &IID_ ## iface >
|
||||
|
||||
enum TestResult
|
||||
{
|
||||
trFailed,
|
||||
trPassed,
|
||||
trPartial
|
||||
};
|
||||
|
||||
class BrowserInfo
|
||||
{
|
||||
public:
|
||||
CControlSiteInstance *pControlSite;
|
||||
IUnknown *pIUnknown;
|
||||
CLSID clsid;
|
||||
|
||||
HRESULT GetWebBrowser(IWebBrowserApp **pWebBrowser)
|
||||
{
|
||||
if (pIUnknown == NULL)
|
||||
{
|
||||
return E_FAIL;
|
||||
}
|
||||
return pIUnknown->QueryInterface(IID_IWebBrowserApp, (void **) pWebBrowser);
|
||||
}
|
||||
|
||||
HRESULT GetDocument(IHTMLDocument2 **pDocument)
|
||||
{
|
||||
CIPtr(IWebBrowserApp) cpWebBrowser;
|
||||
if (FAILED(GetWebBrowser(&cpWebBrowser)))
|
||||
{
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
CIPtr(IDispatch) cpDispDocument;
|
||||
cpWebBrowser->get_Document(&cpDispDocument);
|
||||
if (cpDispDocument == NULL)
|
||||
{
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
return cpDispDocument->QueryInterface(IID_IHTMLDocument2, (void **) pDocument);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
typedef TestResult (__cdecl *TestProc)(BrowserInfo *pInfo);
|
||||
|
||||
struct Test
|
||||
{
|
||||
TCHAR *szName;
|
||||
TCHAR *szDesc;
|
||||
TestProc pfn;
|
||||
};
|
||||
|
||||
struct TestSet
|
||||
{
|
||||
TCHAR *szName;
|
||||
TCHAR *szDesc;
|
||||
int nTests;
|
||||
Test *aTests;
|
||||
};
|
||||
|
||||
|
||||
|
||||
extern TestSet aTestSets[];
|
||||
extern int nTestSets;
|
||||
|
||||
#endif
|
||||
@ -4,6 +4,7 @@
|
||||
#include "stdafx.h"
|
||||
#include "cbrowse.h"
|
||||
#include "CBrowseDlg.h"
|
||||
#include "PickerDlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
@ -61,9 +62,21 @@ BOOL CBrowseApp::InitInstance()
|
||||
Enable3dControlsStatic(); // Call this when linking to MFC statically
|
||||
#endif
|
||||
|
||||
int nResponse;
|
||||
|
||||
CPickerDlg pickerDlg;
|
||||
nResponse = pickerDlg.DoModal();
|
||||
if (nResponse != IDOK)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
CBrowseDlg dlg;
|
||||
|
||||
dlg.m_clsid = pickerDlg.m_clsid;
|
||||
|
||||
m_pMainWnd = &dlg;
|
||||
int nResponse = dlg.DoModal();
|
||||
nResponse = dlg.DoModal();
|
||||
if (nResponse == IDOK)
|
||||
{
|
||||
// TODO: Place code here to handle when the dialog is
|
||||
|
||||
@ -112,9 +112,25 @@ SOURCE=..\..\ControlSite.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\ControlSiteIPFrame.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\PickerDlg.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\PropertyBag.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\StdAfx.cpp
|
||||
# ADD CPP /Yc"stdafx.h"
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\Tests.cpp
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
@ -133,12 +149,24 @@ SOURCE=..\..\ControlSite.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\ControlSiteIPFrame.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\PickerDlg.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\Resource.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\StdAfx.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\Tests.h
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
@ -151,6 +179,30 @@ SOURCE=.\res\cbrowse.ico
|
||||
|
||||
SOURCE=.\res\cbrowse.rc2
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\res\closedfolder.ico
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\res\openfold.ico
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\res\openfolder.ico
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\res\test.ico
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\res\testfailed.ico
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\res\testpassed.ico
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Source File
|
||||
|
||||
|
||||
@ -12,6 +12,30 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Neutral resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDI_CLOSEDFOLDER ICON DISCARDABLE "res\\closedfolder.ico"
|
||||
IDI_OPENFOLDER ICON DISCARDABLE "res\\openfolder.ico"
|
||||
IDI_TESTPASSED ICON DISCARDABLE "res\\testpassed.ico"
|
||||
IDI_TESTFAILED ICON DISCARDABLE "res\\testfailed.ico"
|
||||
#endif // Neutral resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
@ -72,17 +96,30 @@ IDR_MAINFRAME ICON DISCARDABLE "res\\cbrowse.ico"
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_CBROWSE_DIALOG DIALOGEX 0, 0, 358, 226
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
IDD_CBROWSE_DIALOG DIALOGEX 0, 0, 477, 318
|
||||
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
|
||||
EXSTYLE WS_EX_APPWINDOW
|
||||
CAPTION "CBrowse"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
RTEXT "Goto &URL:",IDC_STATIC,6,8,35,10
|
||||
EDITTEXT IDC_URL,47,7,247,12,ES_AUTOHSCROLL
|
||||
PUSHBUTTON "&Go",IDC_GO,301,7,50,12
|
||||
CONTROL "",IDC_BROWSER_MARKER,"Static",SS_BLACKFRAME,7,22,344,
|
||||
196
|
||||
DEFPUSHBUTTON "&Go",IDC_GO,230,7,25,13
|
||||
CONTROL "",IDC_BROWSER_MARKER,"Static",SS_BLACKFRAME,7,24,310,
|
||||
205
|
||||
PUSHBUTTON "Run",IDC_RUNTEST,325,296,50,14,WS_DISABLED
|
||||
LISTBOX IDC_LISTMESSAGES,7,247,310,63,LBS_SORT |
|
||||
LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "Messages:",IDC_STATIC,7,233,110,11
|
||||
CONTROL "Tree1",IDC_TESTLIST,"SysTreeView32",TVS_HASBUTTONS |
|
||||
TVS_HASLINES | TVS_LINESATROOT | TVS_SHOWSELALWAYS |
|
||||
WS_BORDER | WS_TABSTOP,330,16,134,222
|
||||
GROUPBOX "Tests",IDC_STATIC,324,7,146,237
|
||||
COMBOBOX IDC_URL,45,7,180,52,CBS_DROPDOWNLIST | WS_VSCROLL |
|
||||
WS_TABSTOP
|
||||
PUSHBUTTON "<",IDC_BACKWARD,261,7,25,13
|
||||
PUSHBUTTON ">",IDC_FORWARD,292,7,25,13
|
||||
GROUPBOX "Test Description",IDC_STATIC,324,246,146,45
|
||||
LTEXT "",IDC_TESTDESCRIPTION,328,258,137,28
|
||||
END
|
||||
|
||||
|
||||
@ -140,9 +177,9 @@ BEGIN
|
||||
IDD_CBROWSE_DIALOG, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 351
|
||||
RIGHTMARGIN, 470
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 218
|
||||
BOTTOMMARGIN, 310
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
@ -151,6 +188,77 @@ END
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.K.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDI_TEST ICON DISCARDABLE "res\\test.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_PICKBROWSER DIALOG DISCARDABLE 0, 0, 186, 71
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Dialog"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,129,7,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,129,24,50,14
|
||||
LISTBOX IDC_LISTBROWSER,7,38,115,26,LBS_NOINTEGRALHEIGHT |
|
||||
WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "CBrowse is a test app that exercises the IE browser interface.",
|
||||
IDC_STATIC,7,7,116,18
|
||||
LTEXT "Pick the browser to test:",IDC_STATIC,7,28,77,8
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO DISCARDABLE
|
||||
BEGIN
|
||||
IDD_PICKBROWSER, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 179
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 64
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// String Table
|
||||
//
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_CHOOSEBROWSER "You must choose a browser control from the list to proceed."
|
||||
END
|
||||
|
||||
#endif // English (U.K.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@ -2,19 +2,33 @@
|
||||
// Microsoft Developer Studio generated include file.
|
||||
// Used by cbrowse.rc
|
||||
//
|
||||
#define IDS_CHOOSEBROWSER 1
|
||||
#define IDD_CBROWSE_DIALOG 102
|
||||
#define IDR_MAINFRAME 128
|
||||
#define IDD_PICKBROWSER 129
|
||||
#define IDI_CLOSEDFOLDER 130
|
||||
#define IDI_OPENFOLDER 131
|
||||
#define IDI_TEST 132
|
||||
#define IDI_TESTPASSED 133
|
||||
#define IDI_TESTFAILED 134
|
||||
#define IDC_URL 1000
|
||||
#define IDC_GO 1001
|
||||
#define IDC_BROWSER_MARKER 1002
|
||||
#define IDC_LISTBROWSER 1003
|
||||
#define IDC_RUNTEST 1004
|
||||
#define IDC_LISTMESSAGES 1005
|
||||
#define IDC_TESTLIST 1006
|
||||
#define IDC_BACKWARD 1008
|
||||
#define IDC_FORWARD 1009
|
||||
#define IDC_TESTDESCRIPTION 1010
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 129
|
||||
#define _APS_NEXT_RESOURCE_VALUE 135
|
||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
||||
#define _APS_NEXT_CONTROL_VALUE 1003
|
||||
#define _APS_NEXT_CONTROL_VALUE 1011
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user