mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-16 22:04:36 +00:00
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:
parent
669c691adc
commit
f32b0fbb95
@ -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;
|
||||
}
|
||||
*/
|
@ -45,6 +45,7 @@
|
||||
#include "nsIContextMenuListener.h"
|
||||
#include "nsIDOMNode.h"
|
||||
#include "nsISHistoryListener.h"
|
||||
//#include "nsIURIContentListener.h"
|
||||
|
||||
|
||||
class CBrowserImpl :
|
||||
|
@ -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);
|
||||
|
||||
}
|
@ -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.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -90,6 +90,7 @@ public:
|
||||
// Generated message map functions
|
||||
protected:
|
||||
};
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char theUri[1024];
|
||||
|
Loading…
x
Reference in New Issue
Block a user