Fixed an 'observer matching' bug in nsIObserServ.cpp.

a=asa for QA checkins that are not part of the default builds
This commit is contained in:
depstein%netscape.com 2002-05-07 21:59:57 +00:00
parent 669c691adc
commit f32b0fbb95
6 changed files with 112 additions and 57 deletions

View File

@ -271,7 +271,10 @@ NS_IMETHODIMP CBrowserImpl::SizeBrowserTo(PRInt32 aCX, PRInt32 aCY)
NS_IMETHODIMP CBrowserImpl::ShowAsModal(void)
{
return NS_ERROR_NOT_IMPLEMENTED;
// return NS_ERROR_NOT_IMPLEMENTED;
QAOutput("inside nsIWebBrowserChrome::ShowAsModal()", 2);
return NS_OK;
}
NS_IMETHODIMP CBrowserImpl::IsWindowModal(PRBool *retval)
@ -472,4 +475,12 @@ NS_IMETHODIMP CBrowserImpl::OnHideTooltip()
QAOutput("Tool Tip Listened",1);
return NS_OK;
}
*/
NS_IMETHODIMP CBrowserImpl::GetParentURIContentListener(nsIURIContentListener *myURIContentListener)
{
QAOutput("GetParentURIContentListener", 2);
return NS_OK;
}
*/

View File

@ -45,6 +45,7 @@
#include "nsIContextMenuListener.h"
#include "nsIDOMNode.h"
#include "nsISHistoryListener.h"
//#include "nsIURIContentListener.h"
class CBrowserImpl :

View File

@ -459,6 +459,22 @@ void CTests::OnTestsAddWebProgListener()
rv = qaWebBrowser->AddWebBrowserListener(weakling, NS_GET_IID(nsIWebProgressListener));
RvTestResult(rv, "AddWebBrowserListener(). Add Web Prog Lstnr test", 2);
/*
nsCOMPtr<nsIInterfaceRequestor> qaIReq(do_QueryInterface(qaWebBrowser));
nsCOMPtr<nsIWebProgress> qaWebProgress(do_GetInterface(qaIReq));
if (!qaWebProgress)
QAOutput("Didn't get web progress object.", 2);
nsCOMPtr<nsISupports> aListener(do_QueryInterface(qaWebBrowser));
if (!aListener)
QAOutput("We didn't get nsISupports object.", 2);
nsCOMPtr<nsIWebProgressListener> listener = do_QueryInterface(aListener, &rv);
nsCOMPtr<nsIWebProgressListener> listener(NS_STATIC_CAST(nsIWebProgressListener*, qaBrowserImpl));
rv = qaWebProgress->AddProgressListener(listener);
RvTestResult(rv, "nsIWebProgress::AddProgressListener() test", 2);
*/
}
// *********************************************************
@ -564,7 +580,9 @@ void CTests::OnToolsTestYourMethod()
// nsIURIContentListener
// test cases for nsIWebBrowser
// qaWebBrowser = do_CreateInstance(NS_WEBBROWSER_CONTRACTID, &rv);
RvTestResult(rv, "create qaWebBrowser object test", 2);
// AddWebBrowserListener
nsWeakPtr weakling(
dont_AddRef(NS_GetWeakReference(NS_STATIC_CAST(nsIContextMenuListener*, qaBrowserImpl))));
@ -578,9 +596,13 @@ void CTests::OnToolsTestYourMethod()
// GetContainerWindow
nsCOMPtr<nsIWebBrowserChrome> qaWebBrowserChrome;
rv = qaWebBrowser->GetContainerWindow(getter_AddRefs(qaWebBrowserChrome));
RvTestResult(rv, "nsIWebBrowser::GetContainerWindow() test", 2);
if (!qaWebBrowserChrome)
QAOutput("Didn't get web browser chrome object.", 2);
RvTestResult(rv, "nsIWebBrowser::GetContainerWindow() test", 2);
else {
rv = qaWebBrowserChrome->ShowAsModal();
RvTestResult(rv, "nsIWebBrowserChrome::ShowAsModal() test", 2);
}
// SetContainerWindow
rv = qaWebBrowser->SetContainerWindow(qaWebBrowserChrome);
@ -588,10 +610,16 @@ void CTests::OnToolsTestYourMethod()
// GetParentURIContentListener
nsCOMPtr<nsIURIContentListener> qaURIContentListener;
rv = qaWebBrowser->GetParentURIContentListener(getter_AddRefs(qaURIContentListener));
RvTestResult(rv, "nsIWebBrowser::GetParentURIContentListener() test", 2);
if (!qaURIContentListener)
QAOutput("Didn't get uri content listener object.", 2);
RvTestResult(rv, "nsIWebBrowser::GetParentURIContentListener() test", 2);
else {
nsCOMPtr<nsISupports> qaSupports;
rv = qaURIContentListener->GetLoadCookie(getter_AddRefs(qaSupports));
RvTestResult(rv, "nsIURIContentListener::GetLoadCookie() test", 2);
}
// SetParentURIContentListener
rv = qaWebBrowser->SetParentURIContentListener(qaURIContentListener);
@ -600,15 +628,50 @@ void CTests::OnToolsTestYourMethod()
// GetContentDOMWindow
nsCOMPtr<nsIDOMWindow> qaDOMWindow;
rv = qaWebBrowser->GetContentDOMWindow(getter_AddRefs(qaDOMWindow));
RvTestResult(rv, "nsIWebBrowser::GetContentDOMWindow() test", 2);
if (!qaDOMWindow)
QAOutput("Didn't get dom window object.", 2);
RvTestResult(rv, "nsIWebBrowser::GetContentDOMWindow() test", 2);
else {
rv = qaDOMWindow->ScrollTo(50,50);
RvTestResult(rv, "nsIDOMWindow::ScrollTo() test", 2);
}
}
// ***********************************************************************
void CTests::OnToolsTestYourMethod2()
{
// place your test code here
// nsIWebProgress test cases
// get webProg object
nsCOMPtr<nsIInterfaceRequestor> qaIReq(do_QueryInterface(qaWebBrowser));
nsCOMPtr<nsIWebProgress> qaWebProgress(do_GetInterface(qaIReq));
if (!qaWebProgress)
QAOutput("Didn't get web progress object.", 2);
else
QAOutput("We got web progress object.", 2);
// addWebProgListener
nsCOMPtr<nsISupports> aListener(do_QueryInterface(qaWebBrowser));
if (!aListener)
QAOutput("We didn't get nsISupports object.", 2);
nsCOMPtr<nsIWebProgressListener> listener = do_QueryInterface(aListener, &rv);
rv = qaWebProgress->AddProgressListener(listener);
RvTestResult(rv, "nsIWebProgress::AddProgressListener() test", 2);
// removeWebProgListener
rv = qaWebProgress->RemoveProgressListener(listener);
RvTestResult(rv, "nsIWebProgress::RemoveProgressListener() test", 2);
// getTheDOMWindow
nsCOMPtr<nsIDOMWindow> qaDOMWindow;
rv = qaWebProgress->GetDOMWindow(getter_AddRefs(qaDOMWindow));
if (!qaWebProgress)
QAOutput("Didn't get DOM Window object.", 2);
else
RvTestResult(rv, "nsIWebProgress::GetDOMWindow() test", 2);
}
// ***********************************************************************
@ -702,32 +765,21 @@ void CTests::OnInterfacesNsiwebnav()
void CTests::OnInterfacesNsiclipboardcommands()
{
CNsIClipBoardCmd oClipCmd(qaWebBrowser) ;
oClipCmd.OnStartTests(nCommandID);
}
void CTests::OnInterfacesNsiobserverservice()
{
CnsIObserServ oObserv ;
oObserv.OnStartTests(nCommandID);
}
void CTests::OnInterfacesNsifile()
{
CNsIFile oFile ;
oFile.OnStartTests(nCommandID);
}

View File

@ -93,44 +93,35 @@ void CnsIObserServ::OnStartTests(UINT nMenuID)
{
case ID_INTERFACES_NSIOBSERVERSERVICE_RUNALLTESTS :
RunAllTests();
break;
case ID_INTERFACES_NSIOBSERVERSERVICE_ADDOBSERVERS :
AddObserversTest();
break;
case ID_INTERFACES_NSIOBSERVERSERVICE_ENUMERATEOBSERVERS :
case ID_INTERFACES_NSIOBSERVERSERVICE_ENUMERATEOBSERVERS :
QAOutput("nsIObserverService::EnumerateObserversTest(). Adding observers first", 2);
AddObserversTest();
EnumerateObserversTest();
break;
case ID_INTERFACES_NSIOBSERVERSERVICE_NOTIFYOBSERVERS :
NotifyObserversTest();
break;
case ID_INTERFACES_NSIOBSERVERSERVICE_REMOVEOBSERVERS :
QAOutput("nsIObserverService::RemoveObserversTest(). Adding observers first.", 2);
AddObserversTest();
RemoveObserversTest();
break;
default :
AfxMessageBox("Not added menu handler for this menu item");
AfxMessageBox("Menu handler not added for this menu item");
break;
}
}
void CnsIObserServ::RunAllTests()
{
AddObserversTest();
@ -145,7 +136,7 @@ void CnsIObserServ::AddObserversTest()
nsCOMPtr<nsIObserverService>observerService(do_GetService("@mozilla.org/observer-service;1",&rv));
QAOutput("nsIObserverService::AddObserversTest().");
QAOutput("\n nsIObserverService::AddObserversTest().");
if (!observerService)
{
QAOutput("Can't get nsIObserverService object. Tests fail.");
@ -160,6 +151,8 @@ void CnsIObserServ::AddObserversTest()
{
rv = observerService->AddObserver(this, ObserverTable[i].theTopic,
ObserverTable[i].theOwnsWeak);
FormatAndPrintOutput("The observer to be added = ", ObserverTable[i].theTopic, 1);
RvTestResult(rv, "AddObservers() test", 2);
}
@ -171,7 +164,7 @@ void CnsIObserServ::RemoveObserversTest()
nsCOMPtr<nsIObserverService>observerService(do_GetService("@mozilla.org/observer-service;1",&rv));
QAOutput("nsIObserverService::RemoveObserversTest().");
QAOutput("\n nsIObserverService::RemoveObserversTest().");
if (!observerService)
{
QAOutput("Can't get nsIObserverService object. Tests fail.");
@ -179,11 +172,10 @@ void CnsIObserServ::RemoveObserversTest()
}
AddObserversTest();
for (i=0; i<10; i++)
{
rv = observerService->RemoveObserver(this, ObserverTable[i].theTopic);
FormatAndPrintOutput("The observer to be removed = ", ObserverTable[i].theTopic, 1);
RvTestResult(rv, "RemoveObservers() test", 2);
}
}
@ -191,7 +183,7 @@ void CnsIObserServ::RemoveObserversTest()
void CnsIObserServ::NotifyObserversTest()
{
QAOutput("nsIObserverService::NotifyObserversTest().");
QAOutput("\n nsIObserverService::NotifyObserversTest().");
}
@ -201,22 +193,18 @@ void CnsIObserServ::EnumerateObserversTest()
nsCOMPtr<nsIObserverService> observerService(do_GetService("@mozilla.org/observer-service;1",&rv));
nsCOMPtr<nsISimpleEnumerator> simpleEnum;
QAOutput("nsIObserverService::EnumerateObserversTest().");
QAOutput("\n nsIObserverService::EnumerateObserversTest().");
if (!observerService)
{
QAOutput("Can't get nsIObserverService object. Tests fail.");
return;
}
AddObserversTest();
for (i=0; i<10; i++)
{
// need to handle Simple Enumerator
rv = observerService->EnumerateObservers(ObserverTable[i].theTopic,
getter_AddRefs(simpleEnum));
@ -229,28 +217,26 @@ void CnsIObserServ::EnumerateObserversTest()
nsCOMPtr<nsIObserver> observer;
PRBool theLoop = PR_TRUE;
PRBool bLoop = PR_TRUE;
while( NS_SUCCEEDED(simpleEnum->HasMoreElements(&theLoop)) && bLoop)
{
simpleEnum->GetNext(getter_AddRefs(observer));
rv = observer->Observe(observer, ObserverTable[i].theTopic, 0);
RvTestResult(rv, "Observer() test", 2);
RvTestResult(rv, "nsIObserver() test", 2);
// compare 'this' with observer object
// if (this ==(CnsIObserServ *)observer)
if( this == NS_REINTERPRET_CAST(CnsIObserServ*,NS_REINTERPRET_CAST(void*, observer.get())))
QAOutput("match. Test passes.");
{
QAOutput("observers match. Test passes.");
bLoop = PR_FALSE;
}
else
QAOutput("don't match. Test fails.");
QAOutput("observers don't match. Test fails.");
}
}
}

View File

@ -21,9 +21,12 @@
*
* Contributor(s):
* David Epstein <depstein@netscape.com>
* Ashish Bhatt <ashishbhatt@netscape.com>
*
*
* Ashish Bhatt <ashishbhatt@netscape.com>
*
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
@ -53,21 +56,22 @@ class CnsIObserServ : public nsIObserver, public nsSupportsWeakReference
{
public:
CnsIObserServ();
CnsIObserServ();
virtual ~CnsIObserServ();
NS_DECL_ISUPPORTS
NS_DECL_NSIOBSERVER
//nsCOMPtr<nsIWebBrowser> qaWebBrowser ;
//nsCOMPtr<nsIWebBrowser> qaWebBrowser ;
void RunAllTests();
void AddObserversTest();
void RemoveObserversTest();
void NotifyObserversTest();
void EnumerateObserversTest();
void EnumerateObserversTest();
void OnStartTests(UINT nMenuID);
};
typedef struct

View File

@ -90,6 +90,7 @@ public:
// Generated message map functions
protected:
};
typedef struct
{
char theUri[1024];