depstein%netscape.com fe4d82fb11 Uploading new object model (work done by Ashish) & .cpp files for separate interface tests.
git-svn-id: svn://10.0.0.236/trunk@103523 18797224-902f-48f8-a5cc-f745e15eee43
2001-09-22 00:49:38 +00:00

247 lines
6.6 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* David Epstein <depstein@netscape.com>
* Ashish Bhatt <ashishbhatt@netscape.com>
*/
// File Overview....
//
// Test cases for the nsiRequest Interface
#include "stdafx.h"
#include "TestEmbed.h"
#include "BrowserImpl.h"
#include "BrowserFrm.h"
#include "UrlDialog.h"
#include "ProfileMgr.h"
#include "ProfilesDlg.h"
#include "QaUtils.h"
#include "nsirequest.h"
#include <stdio.h>
/////////////////////////////////////////////////////////////////////////////
// CNsIRequest
/*CNsIRequest::CNsIRequest(nsIWebBrowser* mWebBrowser,
nsIBaseWindow* mBaseWindow,
nsIWebNavigation* mWebNav,
CBrowserImpl *mpBrowserImpl):CTests(mWebBrowser,mBaseWindow,mWebNav,mpBrowserImpl)
{
}*/
CNsIRequest::CNsIRequest(nsIWebBrowser* mWebBrowser,CBrowserImpl *mpBrowserImpl)
{
qaWebBrowser = mWebBrowser ;
qaBrowserImpl = mpBrowserImpl ;
}
CNsIRequest::~CNsIRequest()
{
}
/*BEGIN_MESSAGE_MAP(CNsIRequest, CTests)
//{{AFX_MSG_MAP(CNsIRequest)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()*/
/////////////////////////////////////////////////////////////////////////////
// CNsIRequest message handlers
// ***********************************************************************
// ***********************************************************************
// nsIRequest iface
// table columns corrsp to: pending, status, suspend, resume, cancel,
// setLoadGroup & getLoadGroup tests respectively.
Element UrlTable_Temp[] = {
{"http://www.netscape.com", 1, 1, 0, 0, 0, 1, 1},
{"http://www.yahoo.com", 0, 0, 1, 1, 0, 0, 0},
{"http://www.cisco.com", 0, 0, 0, 0, 1, 0, 0},
{"http://www.sun.com", 0, 0, 0, 0, 0, 1, 1},
{"http://www.intel.com", 1, 1, 1, 0, 0, 0, 0},
{"http://www.aol.com", 0, 1, 0, 0, 0, 1, 1}
};
void CNsIRequest::OnInterfacesNsirequest()
{
// note: nsIRequest tests are called:
// 1) in BrowserImpl.cpp, nsIStreamListener::OnDataAvailable()
// 2) as individual tests below
nsCString theSpec;
nsCOMPtr<nsIURI> theURI;
nsCOMPtr<nsIChannel> theChannel;
nsCOMPtr<nsILoadGroup> theLoadGroup(do_CreateInstance(NS_LOADGROUP_CONTRACTID));
int i=0;
QAOutput("Start nsIRequest tests.", 2);
// theSpec = "http://www.netscape.com";
for (i=0; i<6; i++)
{
theSpec = UrlTable_Temp[i].theUrl;
FormatAndPrintOutput("the uri spec = ", theSpec, 2);
rv = NS_NewURI(getter_AddRefs(theURI), theSpec);
if (!theURI)
{
QAOutput("We didn't get the URI. Test failed.", 1);
return;
}
else
RvTestResult(rv, "NS_NewURI", 1);
rv = NS_OpenURI(getter_AddRefs(theChannel), theURI, nsnull, theLoadGroup);
if (!theChannel)
{
QAOutput("We didn't get the Channel. Test failed.", 1);
return;
}
else if (!theLoadGroup)
{
QAOutput("We didn't get the Load Group. Test failed.", 2);
return;
}
else
RvTestResult(rv, "NS_OpenURI", 1);
nsCOMPtr<nsIStreamListener> listener(NS_STATIC_CAST(nsIStreamListener*, qaBrowserImpl));
nsCOMPtr<nsIWeakReference> thisListener(dont_AddRef(NS_GetWeakReference(listener)));
qaWebBrowser->AddWebBrowserListener(thisListener, NS_GET_IID(nsIStreamListener));
// this calls nsIStreamListener::OnDataAvailable()
rv = theChannel->AsyncOpen(listener, nsnull);
RvTestResult(rv, "AsyncOpen()", 1);
// nsIRequest individual tests
QAOutput("***** Individual nsIRequest test begins. *****");
nsCOMPtr<nsIRequest> theRequest = do_QueryInterface(theChannel);
if (UrlTable_Temp[i].reqPend == TRUE)
IsPendingReqTest(theRequest);
if (UrlTable_Temp[i].reqStatus == TRUE)
GetStatusReqTest(theRequest);
if (UrlTable_Temp[i].reqSuspend == TRUE)
SuspendReqTest(theRequest);
if (UrlTable_Temp[i].reqResume == TRUE)
ResumeReqTest(theRequest);
if (UrlTable_Temp[i].reqCancel == TRUE)
CancelReqTest(theRequest);
if (UrlTable_Temp[i].reqSetLoadGroup == TRUE)
SetLoadGroupTest(theRequest, theLoadGroup);
if (UrlTable_Temp[i].reqGetLoadGroup == TRUE)
GetLoadGroupTest(theRequest);
QAOutput("- - - - - - - - - - - - - - - - - - - - -", 1);
} // end for loop
QAOutput("End nsIRequest tests.", 2);
}
void CNsIRequest::IsPendingReqTest(nsIRequest *request)
{
PRBool reqPending;
nsresult rv;
rv = request->IsPending(&reqPending);
RvTestResult(rv, "nsIRequest::IsPending() rv test", 1);
if (!reqPending)
QAOutput("Pending request = false.", 1);
else
QAOutput("Pending request = true.", 1);
}
void CNsIRequest::GetStatusReqTest(nsIRequest *request)
{
nsresult theStatusError;
nsresult rv;
rv = request->GetStatus(&theStatusError);
RvTestResult(rv, "nsIRequest::GetStatus() test", 1);
RvTestResult(rv, "the returned status error test", 1);
}
void CNsIRequest::SuspendReqTest(nsIRequest *request)
{
nsresult rv;
rv = request->Suspend();
RvTestResult(rv, "nsIRequest::Suspend() test", 1);
}
void CNsIRequest::ResumeReqTest(nsIRequest *request)
{
nsresult rv;
rv = request->Resume();
RvTestResult(rv, "nsIRequest::Resume() test", 1);
}
void CNsIRequest::CancelReqTest(nsIRequest *request)
{
nsresult rv;
nsresult status = NS_BINDING_ABORTED;
rv = request->Cancel(status);
RvTestResult(rv, "nsIRequest::Cancel() rv test", 1);
RvTestResult(status, "nsIRequest::Cancel() status test", 1);
}
void CNsIRequest::SetLoadGroupTest(nsIRequest *request,
nsILoadGroup *theLoadGroup)
{
nsresult rv;
nsCOMPtr<nsISimpleEnumerator> theSimpEnum;
rv = request->SetLoadGroup(theLoadGroup);
RvTestResult(rv, "nsIRequest::SetLoadGroup() rv test", 1);
}
void CNsIRequest::GetLoadGroupTest(nsIRequest *request)
{
nsCOMPtr<nsILoadGroup> theLoadGroup;
nsresult rv;
nsCOMPtr<nsISimpleEnumerator> theSimpEnum;
rv = request->GetLoadGroup(getter_AddRefs(theLoadGroup));
RvTestResult(rv, "nsIRequest::GetLoadGroup() rv test", 1);
rv = theLoadGroup->GetRequests(getter_AddRefs(theSimpEnum));
RvTestResult(rv, "nsIRequest:: LoadGroups' GetRequests() rv test", 1);
}