More test improvements
git-svn-id: svn://10.0.0.236/trunk@24922 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
4f3eb6aef6
commit
be9ccb3dc6
@ -56,6 +56,9 @@ CBrowseDlg::CBrowseDlg(CWnd* pParent /*=NULL*/)
|
||||
m_pBrowseDlg = this;
|
||||
m_pControlSite = NULL;
|
||||
m_clsid = CLSID_NULL;
|
||||
|
||||
CWinApp *pApp = AfxGetApp();
|
||||
m_szTestURL = pApp->GetProfileString(SECTION_TEST, KEY_TESTURL, KEY_TESTURL_DEFAULTVALUE);
|
||||
}
|
||||
|
||||
void CBrowseDlg::DoDataExchange(CDataExchange* pDX)
|
||||
@ -287,11 +290,12 @@ TestResult CBrowseDlg::RunTest(Test *pTest)
|
||||
cInfo.pControlSite = m_pControlSite;
|
||||
cInfo.pIUnknown = NULL;
|
||||
cInfo.pfnOutputString = CBrowseDlg::OutputString;
|
||||
cInfo.szTestURL = m_szTestURL;
|
||||
if (cInfo.pControlSite)
|
||||
{
|
||||
cInfo.pControlSite->GetControlUnknown(&cInfo.pIUnknown);
|
||||
}
|
||||
nResult = pTest->pfn(&cInfo);
|
||||
nResult = pTest->pfn(cInfo);
|
||||
pTest->nLastResult = nResult;
|
||||
if (cInfo.pIUnknown)
|
||||
{
|
||||
|
||||
@ -49,6 +49,7 @@ public:
|
||||
protected:
|
||||
HICON m_hIcon;
|
||||
CImageList m_cImageList;
|
||||
CString m_szTestURL;
|
||||
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CBrowseDlg)
|
||||
|
||||
@ -31,6 +31,7 @@ BrowserControl aControls[] =
|
||||
{ _T("Internet Explorer Control"), &CLSID_InternetExplorer }
|
||||
};
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CPickerDlg dialog
|
||||
|
||||
@ -39,8 +40,12 @@ CPickerDlg::CPickerDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CPickerDlg::IDD, pParent)
|
||||
{
|
||||
//{{AFX_DATA_INIT(CPickerDlg)
|
||||
m_szTestURL = _T("");
|
||||
//}}AFX_DATA_INIT
|
||||
m_clsid = CLSID_NULL;
|
||||
|
||||
CWinApp *pApp = AfxGetApp();
|
||||
m_szTestURL = pApp->GetProfileString(SECTION_TEST, KEY_TESTURL, KEY_TESTURL_DEFAULTVALUE);
|
||||
}
|
||||
|
||||
|
||||
@ -49,6 +54,7 @@ void CPickerDlg::DoDataExchange(CDataExchange* pDX)
|
||||
CDialog::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CPickerDlg)
|
||||
DDX_Control(pDX, IDC_LISTBROWSER, m_lbPicker);
|
||||
DDX_Text(pDX, IDC_TESTURL, m_szTestURL);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
@ -79,6 +85,8 @@ BOOL CPickerDlg::OnInitDialog()
|
||||
|
||||
void CPickerDlg::OnOk()
|
||||
{
|
||||
UpdateData();
|
||||
|
||||
int nItem = m_lbPicker.GetCurSel();
|
||||
if (nItem == LB_ERR)
|
||||
{
|
||||
@ -88,6 +96,9 @@ void CPickerDlg::OnOk()
|
||||
|
||||
m_clsid = *aControls[nItem].clsid;
|
||||
|
||||
CWinApp *pApp = AfxGetApp();
|
||||
pApp->WriteProfileString(SECTION_TEST, KEY_TESTURL, m_szTestURL);
|
||||
|
||||
EndDialog(IDOK);
|
||||
}
|
||||
|
||||
|
||||
@ -20,6 +20,7 @@ public:
|
||||
//{{AFX_DATA(CPickerDlg)
|
||||
enum { IDD = IDD_PICKBROWSER };
|
||||
CListBox m_lbPicker;
|
||||
CString m_szTestURL;
|
||||
//}}AFX_DATA
|
||||
|
||||
CLSID m_clsid;
|
||||
|
||||
@ -45,6 +45,11 @@ typedef std::basic_string<TCHAR> tstring;
|
||||
|
||||
#include "Tests.h"
|
||||
|
||||
#define SECTION_TEST _T("Test")
|
||||
#define KEY_TESTURL _T("TestURL")
|
||||
#define KEY_TESTURL_DEFAULTVALUE _T("http://www.mozilla.org")
|
||||
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
|
||||
|
||||
|
||||
@ -18,10 +18,10 @@
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
TestResult __cdecl tstDocument(BrowserInfo *pInfo)
|
||||
TestResult __cdecl tstDocument(BrowserInfo &cInfo)
|
||||
{
|
||||
CIPtr(IHTMLDocument2) cpDocElement;
|
||||
pInfo->GetDocument(&cpDocElement);
|
||||
cInfo.GetDocument(&cpDocElement);
|
||||
if (cpDocElement == NULL)
|
||||
{
|
||||
return trFailed;
|
||||
@ -31,7 +31,7 @@ TestResult __cdecl tstDocument(BrowserInfo *pInfo)
|
||||
}
|
||||
|
||||
|
||||
void tstDrillerLevel(BrowserInfo *pInfo, IHTMLElementCollection *pCollection, int nLevel)
|
||||
void tstDrillerLevel(BrowserInfo &cInfo, IHTMLElementCollection *pCollection, int nLevel)
|
||||
{
|
||||
if (pCollection == NULL)
|
||||
{
|
||||
@ -61,22 +61,35 @@ void tstDrillerLevel(BrowserInfo *pInfo, IHTMLElementCollection *pCollection, in
|
||||
if ( hr == S_OK )
|
||||
{
|
||||
|
||||
BSTR bstr;
|
||||
hr = cpElem->get_tagName(&bstr);
|
||||
BSTR bstrTagName = NULL;
|
||||
hr = cpElem->get_tagName(&bstrTagName);
|
||||
CString szTagName = bstrTagName;
|
||||
SysFreeString(bstrTagName);
|
||||
|
||||
BSTR bstrID = NULL;
|
||||
hr = cpElem->get_id(&bstrID);
|
||||
CString szID = bstrID;
|
||||
SysFreeString(bstrID);
|
||||
|
||||
BSTR bstrClassName = NULL;
|
||||
hr = cpElem->get_className(&bstrClassName);
|
||||
CString szClassName = bstrClassName;
|
||||
SysFreeString(bstrClassName);
|
||||
|
||||
USES_CONVERSION;
|
||||
char szLevel[256];
|
||||
memset(szLevel, 0, sizeof(szLevel));
|
||||
memset(szLevel, ' ', nLevel);
|
||||
|
||||
CString strTag = bstr;
|
||||
pInfo->pfnOutputString(_T("Parsing element: %s%s"), A2T(szLevel), strTag);
|
||||
cInfo.pfnOutputString(_T("%sElement %s"), A2T(szLevel), szTagName);
|
||||
cInfo.pfnOutputString(_T("%s id=%s"), A2T(szLevel), szID);
|
||||
cInfo.pfnOutputString(_T("%s classname=%s"), A2T(szLevel), szClassName);
|
||||
|
||||
CIPtr(IHTMLImgElement) cpImgElem;
|
||||
hr = cpDisp->QueryInterface( IID_IHTMLImgElement, (void **)&cpImgElem );
|
||||
if ( hr == S_OK )
|
||||
{
|
||||
cpImgElem->get_href(&bstr);
|
||||
// cpImgElem->get_href(&bstr);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -84,25 +97,25 @@ void tstDrillerLevel(BrowserInfo *pInfo, IHTMLElementCollection *pCollection, in
|
||||
hr = cpDisp->QueryInterface( IID_IHTMLAnchorElement, (void **)&cpAnchElem );
|
||||
if ( hr == S_OK )
|
||||
{
|
||||
cpAnchElem->get_href(&bstr);
|
||||
// cpAnchElem->get_href(&bstr);
|
||||
}
|
||||
}
|
||||
|
||||
CIPtr(IDispatch) cpDispColl;
|
||||
hr = cpElem->get_all(&cpDispColl);
|
||||
hr = cpElem->get_children(&cpDispColl);
|
||||
if (hr == S_OK)
|
||||
{
|
||||
CIPtr(IHTMLElementCollection) cpColl = cpDispColl;
|
||||
tstDrillerLevel(pInfo, cpColl, nLevel + 1);
|
||||
tstDrillerLevel(cInfo, cpColl, nLevel + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TestResult __cdecl tstDriller(BrowserInfo *pInfo)
|
||||
TestResult __cdecl tstDriller(BrowserInfo &cInfo)
|
||||
{
|
||||
CIPtr(IHTMLDocument2) cpDocElement;
|
||||
pInfo->GetDocument(&cpDocElement);
|
||||
cInfo.GetDocument(&cpDocElement);
|
||||
if (cpDocElement == NULL)
|
||||
{
|
||||
return trFailed;
|
||||
@ -112,21 +125,21 @@ TestResult __cdecl tstDriller(BrowserInfo *pInfo)
|
||||
HRESULT hr = cpDocElement->get_all( &cpColl );
|
||||
if (hr == S_OK)
|
||||
{
|
||||
tstDrillerLevel(pInfo, cpColl, 0);
|
||||
tstDrillerLevel(cInfo, cpColl, 0);
|
||||
}
|
||||
|
||||
return trPassed;
|
||||
}
|
||||
|
||||
TestResult __cdecl tstTesters(BrowserInfo *pInfo)
|
||||
TestResult __cdecl tstTesters(BrowserInfo &cInfo)
|
||||
{
|
||||
pInfo->pfnOutputString("Test architecture is reasonably sane!");
|
||||
cInfo.pfnOutputString("Test architecture is reasonably sane!");
|
||||
return trPassed;
|
||||
}
|
||||
|
||||
TestResult __cdecl tstControlActive(BrowserInfo *pInfo)
|
||||
TestResult __cdecl tstControlActive(BrowserInfo &cInfo)
|
||||
{
|
||||
CControlSiteInstance *pControlSite = pInfo->pControlSite;
|
||||
CControlSiteInstance *pControlSite = cInfo.pControlSite;
|
||||
if (pControlSite == NULL || !pControlSite->IsInPlaceActive())
|
||||
{
|
||||
return trFailed;
|
||||
@ -134,34 +147,31 @@ TestResult __cdecl tstControlActive(BrowserInfo *pInfo)
|
||||
return trPassed;
|
||||
}
|
||||
|
||||
TestResult __cdecl tstIWebBrowser(BrowserInfo *pInfo)
|
||||
TestResult __cdecl tstIWebBrowser(BrowserInfo &cInfo)
|
||||
{
|
||||
if (pInfo->pIUnknown == NULL)
|
||||
if (cInfo.pIUnknown == NULL)
|
||||
{
|
||||
return trFailed;
|
||||
}
|
||||
IWebBrowser *pIWebBrowser = NULL;
|
||||
pInfo->pIUnknown->QueryInterface(IID_IWebBrowser, (void **) &pIWebBrowser);
|
||||
if (pIWebBrowser)
|
||||
|
||||
CIPtr(IWebBrowser) cpIWebBrowser = cInfo.pIUnknown;
|
||||
if (cpIWebBrowser)
|
||||
{
|
||||
pIWebBrowser->Release();
|
||||
return trPassed;
|
||||
}
|
||||
|
||||
return trFailed;
|
||||
}
|
||||
|
||||
TestResult __cdecl tstIWebBrowser2(BrowserInfo *pInfo)
|
||||
TestResult __cdecl tstIWebBrowser2(BrowserInfo &cInfo)
|
||||
{
|
||||
if (pInfo->pIUnknown == NULL)
|
||||
if (cInfo.pIUnknown == NULL)
|
||||
{
|
||||
return trFailed;
|
||||
}
|
||||
IWebBrowser2 *pIWebBrowser = NULL;
|
||||
pInfo->pIUnknown->QueryInterface(IID_IWebBrowser2, (void **) &pIWebBrowser);
|
||||
if (pIWebBrowser)
|
||||
CIPtr(IWebBrowser2) cpIWebBrowser = cInfo.pIUnknown;
|
||||
if (cpIWebBrowser)
|
||||
{
|
||||
pIWebBrowser->Release();
|
||||
return trPassed;
|
||||
}
|
||||
|
||||
@ -169,23 +179,29 @@ TestResult __cdecl tstIWebBrowser2(BrowserInfo *pInfo)
|
||||
}
|
||||
|
||||
|
||||
TestResult __cdecl tstIWebBrowserApp(BrowserInfo *pInfo)
|
||||
TestResult __cdecl tstIWebBrowserApp(BrowserInfo &cInfo)
|
||||
{
|
||||
if (pInfo->pIUnknown == NULL)
|
||||
if (cInfo.pIUnknown == NULL)
|
||||
{
|
||||
return trFailed;
|
||||
}
|
||||
IWebBrowser2 *pIWebBrowser = NULL;
|
||||
pInfo->pIUnknown->QueryInterface(IID_IWebBrowserApp, (void **) &pIWebBrowser);
|
||||
if (pIWebBrowser)
|
||||
|
||||
CIPtr(IWebBrowserApp) cpIWebBrowser = cInfo.pIUnknown;
|
||||
if (cpIWebBrowser)
|
||||
{
|
||||
pIWebBrowser->Release();
|
||||
return trPassed;
|
||||
}
|
||||
|
||||
return trFailed;
|
||||
}
|
||||
|
||||
TestResult __cdecl tstNavigate2(BrowserInfo &cInfo)
|
||||
{
|
||||
return trFailed;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Test aBasic[] =
|
||||
{
|
||||
{ _T("Test Tester"), _T("Ensure that the testing architecture is working"), tstTesters, trNotRun },
|
||||
@ -195,6 +211,16 @@ Test aBasic[] =
|
||||
{ _T("IWebBrowserApp"), _T("Test if control has an IWebBrowserApp interface"), tstIWebBrowserApp, trNotRun }
|
||||
};
|
||||
|
||||
Test aBrowsing[] =
|
||||
{
|
||||
{ _T("Navigate2"), _T("Test if browser can navigate to the test URL"), NULL }
|
||||
};
|
||||
|
||||
Test aOther[] =
|
||||
{
|
||||
{ _T("Print Page"), _T("Print the test URL page"), NULL }
|
||||
};
|
||||
|
||||
Test aDHTML[] =
|
||||
{
|
||||
{ _T("get_Document"), _T("Test if browser has a top level element"), tstDocument },
|
||||
@ -204,7 +230,8 @@ Test aDHTML[] =
|
||||
TestSet aTestSets[] =
|
||||
{
|
||||
{ _T("Basic"), _T("Basic sanity tests"), 5, aBasic },
|
||||
{ _T("Browsing"), _T("Browsing and navigation tests"), 0, NULL },
|
||||
{ _T("Browsing"), _T("Browsing and navigation tests"), 1, aBrowsing },
|
||||
{ _T("Other"), _T("Other tests"), 1, aOther },
|
||||
{ _T("DHTML"), _T("Test the DOM"), 2, aDHTML }
|
||||
};
|
||||
|
||||
|
||||
@ -38,6 +38,7 @@ public:
|
||||
IUnknown *pIUnknown;
|
||||
CLSID clsid;
|
||||
OutputStringProc pfnOutputString;
|
||||
CString szTestURL;
|
||||
|
||||
HRESULT GetWebBrowser(IWebBrowserApp **pWebBrowser)
|
||||
{
|
||||
@ -68,7 +69,7 @@ public:
|
||||
};
|
||||
|
||||
|
||||
typedef TestResult (__cdecl *TestProc)(BrowserInfo *pInfo);
|
||||
typedef TestResult (__cdecl *TestProc)(BrowserInfo &cInfo);
|
||||
|
||||
struct Test
|
||||
{
|
||||
|
||||
@ -211,18 +211,23 @@ IDI_TEST ICON DISCARDABLE "res\\test.ico"
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_PICKBROWSER DIALOG DISCARDABLE 0, 0, 186, 71
|
||||
IDD_PICKBROWSER DIALOG DISCARDABLE 0, 0, 284, 157
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Dialog"
|
||||
CAPTION "Welcome to CBrowse!"
|
||||
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 |
|
||||
LTEXT "This is a browser/test application written in MFC that exercises the IE browser interface of the control that you choose from the list below.",
|
||||
IDC_STATIC,7,7,213,27
|
||||
LTEXT "Whatever control you choose, the exact same code is run upon it. Discrepancies in behaviour or test results may indicate a bug!",
|
||||
IDC_STATIC,7,37,213,20
|
||||
LTEXT "Pick the browser to test:",IDC_STATIC,7,61,77,8
|
||||
LISTBOX IDC_LISTBROWSER,7,74,213,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
|
||||
LTEXT "Some of the tests require a test URL. You may change the default one if you want. Ensure that the URL is valid otherwise the tests might fail!",
|
||||
IDC_STATIC,7,108,213,25
|
||||
EDITTEXT IDC_TESTURL,7,137,213,13,ES_AUTOHSCROLL
|
||||
DEFPUSHBUTTON "OK",IDOK,227,7,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,227,24,50,14
|
||||
END
|
||||
|
||||
|
||||
@ -237,9 +242,9 @@ BEGIN
|
||||
IDD_PICKBROWSER, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 179
|
||||
RIGHTMARGIN, 277
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 64
|
||||
BOTTOMMARGIN, 150
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
@ -21,6 +21,7 @@
|
||||
#define IDC_BACKWARD 1008
|
||||
#define IDC_FORWARD 1009
|
||||
#define IDC_TESTDESCRIPTION 1010
|
||||
#define IDC_TESTURL 1011
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
@ -28,7 +29,7 @@
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 135
|
||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
||||
#define _APS_NEXT_CONTROL_VALUE 1011
|
||||
#define _APS_NEXT_CONTROL_VALUE 1012
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user