NOT PART OF BUILD. Add some extra DHTML validation tests, plus test of control's visible property.

This commit is contained in:
locka%iol.ie 2002-10-08 22:09:06 +00:00
Родитель a1e7fb5214
Коммит 41b6ca5c1a
7 изменённых файлов: 156 добавлений и 32 удалений

Просмотреть файл

@ -98,6 +98,8 @@ BEGIN_MESSAGE_MAP(CBrowseDlg, CDialog)
ON_BN_CLICKED(IDC_STOP, OnStop)
ON_COMMAND(ID_FILE_SAVEAS, OnFileSaveAs)
ON_COMMAND(ID_FILE_PRINT, OnFilePrint)
ON_COMMAND(ID_DEBUG_VISIBLE, OnDebugVisible)
ON_UPDATE_COMMAND_UI(ID_DEBUG_VISIBLE, OnUpdateDebugVisible)
//}}AFX_MSG_MAP
ON_COMMAND(IDB_BOLD, OnEditBold)
ON_COMMAND(IDB_ITALIC, OnEditItalic)
@ -891,3 +893,30 @@ void CBrowseDlg::OnFilePrint()
{
ExecOleCommand(NULL, OLECMDID_PRINT);
}
void CBrowseDlg::OnDebugVisible()
{
VARIANT_BOOL visible = VARIANT_TRUE;
IWebBrowser *pIWebBrowser = NULL;
if (SUCCEEDED(GetWebBrowser(&pIWebBrowser)))
{
CIPtr(IWebBrowserApp) cpWebBrowser = pIWebBrowser;
cpWebBrowser->get_Visible(&visible);
cpWebBrowser->put_Visible(visible == VARIANT_TRUE ? VARIANT_FALSE : VARIANT_TRUE);
pIWebBrowser->Release();
}
}
void CBrowseDlg::OnUpdateDebugVisible(CCmdUI* pCmdUI)
{
VARIANT_BOOL visible = VARIANT_TRUE;
IWebBrowser *pIWebBrowser = NULL;
if (SUCCEEDED(GetWebBrowser(&pIWebBrowser)))
{
CIPtr(IWebBrowserApp) cpWebBrowser = pIWebBrowser;
cpWebBrowser->get_Visible(&visible);
pIWebBrowser->Release();
}
pCmdUI->SetCheck(visible == VARIANT_TRUE ? 1 : 0);
}

Просмотреть файл

@ -101,6 +101,8 @@ protected:
afx_msg void OnStop();
afx_msg void OnFileSaveAs();
afx_msg void OnFilePrint();
afx_msg void OnDebugVisible();
afx_msg void OnUpdateDebugVisible(CCmdUI* pCmdUI);
//}}AFX_MSG
afx_msg void OnEditBold();
afx_msg void OnEditItalic();

Просмотреть файл

@ -147,6 +147,100 @@ TestResult __cdecl tstDocument(BrowserInfo &cInfo)
}
TestResult __cdecl tstBody(BrowserInfo &cInfo)
{
CIPtr(IHTMLDocument2) cpDocElement;
cInfo.GetDocument(&cpDocElement);
if (cpDocElement == NULL)
{
cInfo.OutputString(_T("Error: No document"));
return trFailed;
}
CIPtr(IHTMLElement) cpBody;
cpDocElement->get_body(&cpBody);
if (cpBody == NULL)
{
cInfo.OutputString(_T("Error: No Body"));
return trFailed;
}
return trPassed;
}
TestResult __cdecl tstPutInnerHTML(BrowserInfo &cInfo)
{
CIPtr(IHTMLDocument2) cpDocElement;
cInfo.GetDocument(&cpDocElement);
if (cpDocElement == NULL)
{
cInfo.OutputString(_T("Error: No document"));
return trFailed;
}
CIPtr(IHTMLElement) cpBody;
cpDocElement->get_body(&cpBody);
if (cpBody == NULL)
{
cInfo.OutputString(_T("Error: No Body"));
return trFailed;
}
CComBSTR bstr("<p>Hello world!<p><a href=\"http://www.mozilla.org\">Click here to visit our sponsor</a>");
if (FAILED(cpBody->put_innerHTML(bstr)))
{
cInfo.OutputString(_T("Error: put_innerHTML returned error"));
return trFailed;
}
return trPassed;
}
TestResult __cdecl tstGetInnerHTML(BrowserInfo &cInfo)
{
CIPtr(IHTMLDocument2) cpDocElement;
cInfo.GetDocument(&cpDocElement);
if (cpDocElement == NULL)
{
cInfo.OutputString(_T("Error: No document"));
return trFailed;
}
CIPtr(IHTMLElement) cpBody;
HRESULT hr = cpDocElement->get_body( &cpBody );
if (hr == S_OK)
{
CComBSTR html;
if (FAILED(cpBody->get_innerHTML(&html)))
{
cInfo.OutputString(_T("Error: get_innerHTML returned error"));
return trFailed;
}
}
return trPassed;
}
TestResult __cdecl tstSetBgColor(BrowserInfo &cInfo)
{
CIPtr(IHTMLDocument2) cpDocElement;
cInfo.GetDocument(&cpDocElement);
if (cpDocElement == NULL)
{
cInfo.OutputString(_T("Error: No document"));
return trFailed;
}
CComVariant v("red");
if (FAILED(cpDocElement->put_bgColor(v)))
{
cInfo.OutputString(_T("Error: put_bgColor returned an error"));
return trFailed;
}
return trPassed;
}
TestResult __cdecl tstCollectionEnum(BrowserInfo &cInfo)
{
CIPtr(IHTMLDocument2) cpDocElement;
@ -306,29 +400,6 @@ TestResult __cdecl tstDriller(BrowserInfo &cInfo)
}
TestResult __cdecl tstInnerHTML(BrowserInfo &cInfo)
{
CIPtr(IHTMLDocument2) cpDocElement;
cInfo.GetDocument(&cpDocElement);
if (cpDocElement == NULL)
{
cInfo.OutputString(_T("Error: No document"));
return trFailed;
}
CIPtr(IHTMLElement) cpBody;
HRESULT hr = cpDocElement->get_body( &cpBody );
if (hr == S_OK)
{
BSTR html = NULL;
cpBody->get_innerHTML(&html);
SysFreeString(html);
}
return trPassed;
}
TestResult __cdecl tstTesters(BrowserInfo &cInfo)
{
cInfo.OutputString("Test architecture is reasonably sane!");
@ -516,9 +587,12 @@ Test aBrowsing[] =
Test aDHTML[] =
{
{ _T("IWebBrowser::get_Document"), _T("Test if browser has a top level element"), tstDocument },
{ _T("IHTMLDocument::get_Body"), _T("Test if the body element can be retrieved"), tstBody},
{ _T("IHTMLElement::put_innerHTML"), _T("Test if the innerHTML attribute works"), tstPutInnerHTML },
{ _T("IHTMLElement::get_innerHTML"), _T("Dump the innerHTML for the BODY element"), tstGetInnerHTML },
{ _T("IHTMLElement::put_bgColor"), _T("Set the document background color to red"), tstSetBgColor },
{ _T("IHTMLElementCollection::get__newEnum"), _T("Test if element collections return enumerations"), tstCollectionEnum },
{ _T("Parse DOM"), _T("Parse the document DOM"), tstDriller },
{ _T("innerHTML"), _T("Dump the innerHTML for the BODY element"), tstInnerHTML }
{ _T("Parse DOM"), _T("Parse the document DOM"), tstDriller }
};

Просмотреть файл

@ -22,9 +22,7 @@ static char THIS_FILE[] = __FILE__;
BEGIN_MESSAGE_MAP(CBrowseApp, CWinApp)
//{{AFX_MSG_MAP(CBrowseApp)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG
//}}AFX_MSG_MAP
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()
@ -203,3 +201,20 @@ BOOL CBrowseApp::InitATL()
return TRUE;
}
int CBrowseApp::Run()
{
int rv = 1;
try {
rv = CWinApp::Run();
}
catch (CException *e)
{
ASSERT(0);
}
catch (...)
{
ASSERT(0);
}
return rv;
}

Просмотреть файл

@ -32,13 +32,12 @@ public:
public:
virtual BOOL InitInstance();
virtual int ExitInstance();
virtual int Run();
//}}AFX_VIRTUAL
// Implementation
//{{AFX_MSG(CBrowseApp)
// NOTE - the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:

Просмотреть файл

@ -102,7 +102,7 @@ STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU | WS_THICKFRAME
EXSTYLE WS_EX_APPWINDOW
CAPTION "CBrowse"
FONT 8, "MS Sans Serif"
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
RTEXT "&URL:",IDC_STATIC,7,13,18,8
COMBOBOX IDC_URL,27,11,125,52,CBS_DROPDOWN | CBS_AUTOHSCROLL |
@ -235,6 +235,10 @@ BEGIN
BEGIN
MENUITEM "&About...", ID_HELP_ABOUT
END
POPUP "&Debug"
BEGIN
MENUITEM "&Visible", ID_DEBUG_VISIBLE
END
END
#endif // English (U.S.) resources

Просмотреть файл

@ -65,13 +65,14 @@
#define ID_EDIT_SELECTALL 32790
#define ID_VIEW_REFRESH 32791
#define ID_FILE_SAVEAS 32793
#define ID_DEBUG_VISIBLE 32794
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 142
#define _APS_NEXT_COMMAND_VALUE 32794
#define _APS_NEXT_COMMAND_VALUE 32795
#define _APS_NEXT_CONTROL_VALUE 1028
#define _APS_NEXT_SYMED_VALUE 107
#endif