mirror of
https://github.com/rn10950/RetroZilla.git
synced 2024-11-10 18:00:15 +01:00
619 lines
16 KiB
C++
619 lines
16 KiB
C++
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||
|
/* ***** BEGIN LICENSE BLOCK *****
|
||
|
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||
|
*
|
||
|
* The contents of this file are subject to the Mozilla 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/MPL/
|
||
|
*
|
||
|
* 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 the Initial Developer are Copyright (C) 1998
|
||
|
* the Initial Developer. All Rights Reserved.
|
||
|
*
|
||
|
* Contributor(s):
|
||
|
* 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"),
|
||
|
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||
|
* of those above. If you wish to allow use of your version of this file only
|
||
|
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||
|
* use your version of this file under the terms of the MPL, indicate your
|
||
|
* decision by deleting the provisions above and replace them with the notice
|
||
|
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||
|
* the provisions above, a recipient may use your version of this file under
|
||
|
* the terms of any one of the MPL, the GPL or the LGPL.
|
||
|
*
|
||
|
* ***** END LICENSE BLOCK ***** */
|
||
|
|
||
|
// File Overview....
|
||
|
//
|
||
|
// Test cases for the nsISelection Interface
|
||
|
|
||
|
#include "stdafx.h"
|
||
|
#include "QaUtils.h"
|
||
|
#include <stdio.h>
|
||
|
#include "Selection.h"
|
||
|
|
||
|
CSelection::CSelection(nsIWebBrowser* mWebBrowser)
|
||
|
{
|
||
|
qaWebBrowser = mWebBrowser;
|
||
|
}
|
||
|
|
||
|
|
||
|
CSelection::~CSelection()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
|
||
|
void CSelection::OnStartTests(UINT nMenuID)
|
||
|
{
|
||
|
// Calls all or indivdual test cases on the basis of the
|
||
|
// option selected from menu.
|
||
|
|
||
|
switch(nMenuID)
|
||
|
{
|
||
|
case ID_INTERFACES_NSISELECTION_RUNALLTESTS :
|
||
|
RunAllTests();
|
||
|
break ;
|
||
|
case ID_INTERFACES_NSISELECTION_GETANCHORNODE :
|
||
|
GetAnchorNode();
|
||
|
break ;
|
||
|
case ID_INTERFACES_NSISELECTION_GETANCHOROFFSET :
|
||
|
GetAnchorOffset();
|
||
|
break ;
|
||
|
case ID_INTERFACES_NSISELECTION_GETFOCUSNODE :
|
||
|
GetFocusNode() ;
|
||
|
break ;
|
||
|
case ID_INTERFACES_NSISELECTION_GETFOCUSOFFSET :
|
||
|
GetFocusOffset() ;
|
||
|
break ;
|
||
|
case ID_INTERFACES_NSISELECTION_GETISCOLLAPSED :
|
||
|
GetIsCollapsed() ;
|
||
|
break ;
|
||
|
case ID_INTERFACES_NSISELECTION_GETRANGECOUNT :
|
||
|
GetRangecount() ;
|
||
|
break ;
|
||
|
case ID_INTERFACES_NSISELECTION_GETRANGEAT :
|
||
|
GetRangeAt() ;
|
||
|
break ;
|
||
|
case ID_INTERFACES_NSISELECTION_COLLAPSE :
|
||
|
Collapse() ;
|
||
|
break ;
|
||
|
case ID_INTERFACES_NSISELECTION_EXTEND :
|
||
|
Extend() ;
|
||
|
break ;
|
||
|
case ID_INTERFACES_NSISELECTION_COLLAPSETOSTART :
|
||
|
CollapseToStart() ;
|
||
|
break ;
|
||
|
case ID_INTERFACES_NSISELECTION_COLLAPSETOEND :
|
||
|
CollapseToEnd() ;
|
||
|
break ;
|
||
|
case ID_INTERFACES_NSISELECTION_CONTAINSNODE :
|
||
|
ContainsNode() ;
|
||
|
break ;
|
||
|
case ID_INTERFACES_NSISELECTION_SELECTALLCHILDREN :
|
||
|
SelectAllChildren();
|
||
|
break ;
|
||
|
case ID_INTERFACES_NSISELECTION_ADDRANGE :
|
||
|
Addrange();
|
||
|
break ;
|
||
|
case ID_INTERFACES_NSISELECTION_REMOVERANGE :
|
||
|
RemoveRange();
|
||
|
break ;
|
||
|
case ID_INTERFACES_NSISELECTION_REMOVEALLRANGES :
|
||
|
RemoveAllRanges();
|
||
|
break ;
|
||
|
case ID_INTERFACES_NSISELECTION_DELETEFROMDOCUMENT :
|
||
|
DeleteFromDocument();
|
||
|
break ;
|
||
|
case ID_INTERFACES_NSISELECTION_SELECTIONLANGUAGECHANGE :
|
||
|
SelectionLanguageChange();
|
||
|
break ;
|
||
|
case ID_INTERFACES_NSISELECTION_TOSTRING :
|
||
|
ToString();
|
||
|
break ;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
void CSelection::RunAllTests()
|
||
|
{
|
||
|
|
||
|
PRInt32 ancoroffset = 0;
|
||
|
PRInt32 focusoffset = 0;
|
||
|
PRInt32 rangecount = 0;
|
||
|
PRInt32 index = 0;
|
||
|
PRBool bisCollapsed = false;
|
||
|
PRBool bContains = false;
|
||
|
nsXPIDLString szText;
|
||
|
|
||
|
nsCOMPtr<nsISelection> oNsSelection ;
|
||
|
nsCOMPtr<nsIDOMNode> oNsDOMAnchorNode ;
|
||
|
nsCOMPtr<nsIDOMNode> oNsDOMFocusNode ;
|
||
|
nsCOMPtr<nsIDOMRange> oNsDOMRange ;
|
||
|
|
||
|
oNsSelection = GetSelectionObject(true);
|
||
|
if (!oNsSelection)
|
||
|
return ;
|
||
|
|
||
|
//---------------- Test case for AnchorNode Attribute
|
||
|
|
||
|
rv = oNsSelection->GetAnchorNode(getter_AddRefs(oNsDOMAnchorNode));
|
||
|
RvTestResultDlg(rv, "nsISelection::GetAnchorNode() ");
|
||
|
if (!oNsDOMAnchorNode)
|
||
|
RvTestResultDlg(rv, "------>No Selection made to get the AnchorNode object");
|
||
|
|
||
|
//---------------- Test case for AnchorOffset Attribute
|
||
|
|
||
|
rv = oNsSelection->GetAnchorOffset(&ancoroffset);
|
||
|
RvTestResultDlg(rv, "nsISelection::GetAnchorOffset()");
|
||
|
|
||
|
|
||
|
//---------------- Test case for FocusNode Attribute
|
||
|
|
||
|
rv = oNsSelection->GetFocusNode(getter_AddRefs(oNsDOMFocusNode));
|
||
|
RvTestResultDlg(rv, "nsISelection::GetFocusNode() ");
|
||
|
if (!oNsDOMFocusNode)
|
||
|
RvTestResultDlg(rv, "------>No Selection made to get the FocusNode object");
|
||
|
|
||
|
//---------------- Test case for FocusOffset Attribute
|
||
|
|
||
|
rv = oNsSelection->GetFocusOffset(&focusoffset);
|
||
|
RvTestResultDlg(rv, "nsISelection::GetFocusOffset()");
|
||
|
|
||
|
//---------------- Test case for isCollapsed Attribute
|
||
|
|
||
|
rv = oNsSelection->GetIsCollapsed(&bisCollapsed);
|
||
|
RvTestResultDlg(rv, "nsISelection::GetIsCollapsed()");
|
||
|
if(bisCollapsed)
|
||
|
RvTestResultDlg(rv, "------> Returned value for IsCollapsed is true");
|
||
|
else
|
||
|
RvTestResultDlg(rv, "------> Returned value for IsCollapsed is false");
|
||
|
|
||
|
|
||
|
//---------------- Test case for isCollapsed Attribute
|
||
|
|
||
|
rv = oNsSelection->GetRangeCount(&rangecount);
|
||
|
RvTestResultDlg(rv, "nsISelection::GetRangeCount()");
|
||
|
|
||
|
|
||
|
//---------------- Test case for GetRangeAt function
|
||
|
|
||
|
rv = oNsSelection->GetRangeAt(index,getter_AddRefs(oNsDOMRange));
|
||
|
RvTestResultDlg(rv, "nsISelection::GetRangeAt() ");
|
||
|
if (!oNsDOMRange)
|
||
|
RvTestResultDlg(rv, "------>Not able to get nsIDOMRange object");
|
||
|
|
||
|
|
||
|
//---------------- Test case for Collapse function
|
||
|
|
||
|
rv = oNsSelection->Collapse(oNsDOMFocusNode,1) ;
|
||
|
RvTestResultDlg(rv, "nsISelection::Collapse() ");
|
||
|
|
||
|
//---------------- Test case for Extend function
|
||
|
|
||
|
rv = oNsSelection->Extend(oNsDOMFocusNode,10) ;
|
||
|
RvTestResultDlg(rv, "nsISelection::Extend() ");
|
||
|
|
||
|
//---------------- Test case for CollapseToStart function
|
||
|
|
||
|
rv = oNsSelection->CollapseToStart();
|
||
|
RvTestResultDlg(rv, "nsISelection::CollapseToStart() ");
|
||
|
|
||
|
//---------------- Test case for CollapseToEnd function
|
||
|
|
||
|
rv = oNsSelection->CollapseToEnd();
|
||
|
RvTestResultDlg(rv, "nsISelection::CollapseToEnd() ");
|
||
|
|
||
|
//---------------- Test case for ContainsNode function
|
||
|
|
||
|
rv = oNsSelection->ContainsNode(oNsDOMFocusNode,PR_TRUE, &bContains);
|
||
|
RvTestResultDlg(rv, "nsISelection::ContainsNode() ");
|
||
|
if(bContains)
|
||
|
RvTestResultDlg(rv, "------> Returned value for ContainsNode is true");
|
||
|
else
|
||
|
RvTestResultDlg(rv, "------> Returned value for ContainsNode is false");
|
||
|
|
||
|
|
||
|
//---------------- Test case for SelectAllChildren function
|
||
|
|
||
|
rv = oNsSelection->SelectAllChildren(oNsDOMFocusNode);
|
||
|
RvTestResultDlg(rv, "nsISelection::SelectAllChildren() ");
|
||
|
|
||
|
//---------------- Test case for Addrange function
|
||
|
|
||
|
rv = oNsSelection->AddRange(oNsDOMRange);
|
||
|
RvTestResultDlg(rv, "nsISelection::Addrange() ");
|
||
|
|
||
|
//---------------- Test case for RemoveRange function
|
||
|
|
||
|
rv = oNsSelection->RemoveRange(oNsDOMRange);
|
||
|
RvTestResultDlg(rv, "nsISelection::RemoveRange() ");
|
||
|
|
||
|
//---------------- Test case for RemoveAllRanges function
|
||
|
|
||
|
rv = oNsSelection->RemoveAllRanges();
|
||
|
RvTestResultDlg(rv, "nsISelection::RemoveAllRanges() ");
|
||
|
|
||
|
//---------------- Test case for DeleteFromDocument function
|
||
|
|
||
|
rv = oNsSelection->DeleteFromDocument();
|
||
|
RvTestResultDlg(rv, "nsISelection::DeleteFromDocument() ");
|
||
|
|
||
|
//---------------- Test case for SelectionLanguageChange function
|
||
|
|
||
|
rv = oNsSelection->SelectionLanguageChange(PR_FALSE);
|
||
|
RvTestResultDlg(rv, "nsISelection::SelectionLanguageChange() ");
|
||
|
|
||
|
//---------------- Test case for ToString function
|
||
|
|
||
|
rv = oNsSelection->ToString(getter_Copies(szText));
|
||
|
RvTestResultDlg(rv, "nsISelection::ToString() ");
|
||
|
}
|
||
|
|
||
|
|
||
|
void CSelection::GetAnchorNode()
|
||
|
{
|
||
|
|
||
|
nsCOMPtr<nsIDOMNode> oNsDOMAnchorNode ;
|
||
|
nsCOMPtr<nsISelection> oSelection ;
|
||
|
|
||
|
oSelection = GetSelectionObject();
|
||
|
if (!oSelection)
|
||
|
return ;
|
||
|
|
||
|
rv = oSelection->GetAnchorNode(getter_AddRefs(oNsDOMAnchorNode));
|
||
|
RvTestResult(rv, "nsISelection::GetAnchorNode() ",0);
|
||
|
if (!oNsDOMAnchorNode)
|
||
|
RvTestResult(rv, "------>No Selection made to get the AnchorNode object",0);
|
||
|
}
|
||
|
|
||
|
|
||
|
void CSelection::GetAnchorOffset()
|
||
|
{
|
||
|
|
||
|
PRInt32 ancoroffset = 0;
|
||
|
//char szstr[10] ;
|
||
|
|
||
|
nsCOMPtr<nsISelection> oSelection ;
|
||
|
|
||
|
oSelection = GetSelectionObject();
|
||
|
if (!oSelection)
|
||
|
return ;
|
||
|
|
||
|
rv = oSelection->GetAnchorOffset(&ancoroffset);
|
||
|
RvTestResult(rv, "nsISelection::GetAnchorOffset()",0);
|
||
|
//ltoa(ancoroffset, szstr,10);
|
||
|
//AfxMessageBox(szstr);
|
||
|
}
|
||
|
|
||
|
void CSelection::GetFocusNode()
|
||
|
{
|
||
|
nsCOMPtr<nsIDOMNode> oNsDOMFocusNode ;
|
||
|
nsCOMPtr<nsISelection> oSelection ;
|
||
|
|
||
|
oSelection = GetSelectionObject();
|
||
|
if (!oSelection)
|
||
|
return ;
|
||
|
|
||
|
rv = oSelection->GetFocusNode(getter_AddRefs(oNsDOMFocusNode));
|
||
|
RvTestResult(rv, "nsISelection::GetFocusNode() ",0);
|
||
|
if (!oNsDOMFocusNode)
|
||
|
RvTestResult(rv, "------>No Selection made to get the FocusNode object",0);
|
||
|
}
|
||
|
|
||
|
void CSelection::GetFocusOffset()
|
||
|
{
|
||
|
PRInt32 focusoffset = 0;
|
||
|
nsCOMPtr<nsISelection> oSelection ;
|
||
|
|
||
|
oSelection = GetSelectionObject();
|
||
|
if (!oSelection)
|
||
|
return ;
|
||
|
|
||
|
rv = oSelection->GetFocusOffset(&focusoffset);
|
||
|
RvTestResult(rv, "nsISelection::GetFocusOffset()",0);
|
||
|
|
||
|
}
|
||
|
|
||
|
void CSelection::GetIsCollapsed()
|
||
|
{
|
||
|
PRBool bisCollapsed = false;
|
||
|
|
||
|
nsCOMPtr<nsISelection> oSelection ;
|
||
|
oSelection = GetSelectionObject();
|
||
|
if (!oSelection)
|
||
|
return ;
|
||
|
|
||
|
rv = oSelection->GetIsCollapsed(&bisCollapsed);
|
||
|
RvTestResult(rv, "nsISelection::GetIsCollapsed()",0);
|
||
|
if(bisCollapsed)
|
||
|
RvTestResult(rv, "------> Returned value for IsCollapsed is true",0);
|
||
|
else
|
||
|
RvTestResult(rv, "------> Returned value for IsCollapsed is false",0);
|
||
|
}
|
||
|
|
||
|
void CSelection::GetRangecount()
|
||
|
{
|
||
|
PRInt32 rangecount = 0;
|
||
|
nsCOMPtr<nsISelection> oSelection ;
|
||
|
|
||
|
oSelection = GetSelectionObject();
|
||
|
if (!oSelection)
|
||
|
return ;
|
||
|
rv = oSelection->GetRangeCount(&rangecount);
|
||
|
RvTestResult(rv, "nsISelection::GetRangeCount()",0);
|
||
|
char szstr[10] ;
|
||
|
ltoa(rangecount, szstr,10);
|
||
|
AfxMessageBox(szstr);
|
||
|
}
|
||
|
|
||
|
|
||
|
void CSelection::GetRangeAt()
|
||
|
{
|
||
|
PRInt32 index = 0;
|
||
|
nsCOMPtr<nsIDOMRange> oNsDOMRange ;
|
||
|
|
||
|
nsCOMPtr<nsISelection> oSelection ;
|
||
|
oSelection = GetSelectionObject();
|
||
|
if (!oSelection)
|
||
|
return ;
|
||
|
rv = oSelection->GetRangeAt(index,getter_AddRefs(oNsDOMRange));
|
||
|
RvTestResult(rv, "nsISelection::GetRangeAt() ",0);
|
||
|
if (!oNsDOMRange)
|
||
|
RvTestResult(rv, "------>Not able to get nsIDOMRange object",0);
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
void CSelection::Collapse()
|
||
|
{
|
||
|
|
||
|
nsCOMPtr<nsIDOMNode> oNsDOMFocusNode ;
|
||
|
nsCOMPtr<nsISelection> oSelection ;
|
||
|
|
||
|
oSelection = GetSelectionObject();
|
||
|
if (!oSelection)
|
||
|
return ;
|
||
|
|
||
|
rv = oSelection->GetFocusNode(getter_AddRefs(oNsDOMFocusNode));
|
||
|
RvTestResult(rv, "nsISelection::GetFocusNode() ",0);
|
||
|
if (!oNsDOMFocusNode)
|
||
|
RvTestResult(rv, "------>No Selection made to get the FocusNode object",0);
|
||
|
|
||
|
rv = oSelection->Collapse(oNsDOMFocusNode,1) ;
|
||
|
RvTestResult(rv, "nsISelection::Collapse() ",0);
|
||
|
|
||
|
}
|
||
|
|
||
|
void CSelection::Extend()
|
||
|
{
|
||
|
nsCOMPtr<nsIDOMNode> oNsDOMFocusNode ;
|
||
|
nsCOMPtr<nsISelection> oSelection ;
|
||
|
|
||
|
oSelection = GetSelectionObject();
|
||
|
if (!oSelection)
|
||
|
return ;
|
||
|
|
||
|
rv = oSelection->GetFocusNode(getter_AddRefs(oNsDOMFocusNode));
|
||
|
RvTestResult(rv, "nsISelection::GetFocusNode() ",0);
|
||
|
if (!oNsDOMFocusNode)
|
||
|
RvTestResult(rv, "------>No Selection made to get the FocusNode object",0);
|
||
|
|
||
|
|
||
|
rv = oSelection->Extend(oNsDOMFocusNode,10) ;
|
||
|
RvTestResult(rv, "nsISelection::Extend() ",0);
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
void CSelection::CollapseToStart()
|
||
|
{
|
||
|
nsCOMPtr<nsISelection> oSelection ;
|
||
|
oSelection = GetSelectionObject();
|
||
|
if (!oSelection)
|
||
|
return ;
|
||
|
rv = oSelection->CollapseToStart();
|
||
|
RvTestResult(rv, "nsISelection::CollapseToStart() ",0);
|
||
|
|
||
|
}
|
||
|
|
||
|
void CSelection::CollapseToEnd()
|
||
|
{
|
||
|
nsCOMPtr<nsISelection> oSelection ;
|
||
|
oSelection = GetSelectionObject();
|
||
|
rv = oSelection->CollapseToEnd();
|
||
|
RvTestResult(rv, "nsISelection::CollapseToEnd() ",0);
|
||
|
}
|
||
|
|
||
|
void CSelection::ContainsNode()
|
||
|
{
|
||
|
PRBool bContains = false;
|
||
|
|
||
|
nsCOMPtr<nsIDOMNode> oNsDOMFocusNode ;
|
||
|
nsCOMPtr<nsISelection> oSelection ;
|
||
|
|
||
|
oSelection = GetSelectionObject();
|
||
|
if (!oSelection)
|
||
|
return ;
|
||
|
|
||
|
rv = oSelection->GetFocusNode(getter_AddRefs(oNsDOMFocusNode));
|
||
|
RvTestResult(rv, "nsISelection::GetFocusNode() ",0);
|
||
|
if (!oNsDOMFocusNode)
|
||
|
RvTestResult(rv, "------>No Selection made to get the FocusNode object",0);
|
||
|
|
||
|
|
||
|
rv = oSelection->ContainsNode(oNsDOMFocusNode,PR_TRUE, &bContains);
|
||
|
RvTestResult(rv, "nsISelection::ContainsNode() ",0);
|
||
|
if(bContains)
|
||
|
RvTestResult(rv, "------> Returned value for ContainsNode is true",0);
|
||
|
else
|
||
|
RvTestResult(rv, "------> Returned value for ContainsNode is false",0);
|
||
|
}
|
||
|
|
||
|
void CSelection::SelectAllChildren()
|
||
|
{
|
||
|
nsCOMPtr<nsIDOMNode> oNsDOMFocusNode ;
|
||
|
nsCOMPtr<nsISelection> oSelection ;
|
||
|
|
||
|
oSelection = GetSelectionObject();
|
||
|
if (!oSelection)
|
||
|
return ;
|
||
|
|
||
|
rv = oSelection->GetFocusNode(getter_AddRefs(oNsDOMFocusNode));
|
||
|
RvTestResult(rv, "nsISelection::GetFocusNode() ",0);
|
||
|
if (!oNsDOMFocusNode)
|
||
|
RvTestResult(rv, "------>No Selection made to get the FocusNode object",0);
|
||
|
|
||
|
|
||
|
rv = oSelection->SelectAllChildren(oNsDOMFocusNode);
|
||
|
RvTestResult(rv, "nsISelection::SelectAllChildren() ",0);
|
||
|
|
||
|
}
|
||
|
|
||
|
void CSelection::Addrange()
|
||
|
{
|
||
|
PRInt32 index= 0;
|
||
|
|
||
|
nsCOMPtr<nsIDOMRange> oNsDOMRange ;
|
||
|
nsCOMPtr<nsISelection> oSelection ;
|
||
|
|
||
|
oSelection = GetSelectionObject();
|
||
|
if (!oSelection)
|
||
|
return ;
|
||
|
|
||
|
rv = oSelection->GetRangeAt(index,getter_AddRefs(oNsDOMRange));
|
||
|
RvTestResult(rv, "nsISelection::GetRangeAt() ",0);
|
||
|
if (!oNsDOMRange)
|
||
|
RvTestResult(rv, "------>Not able to get nsIDOMRange object",0);
|
||
|
|
||
|
rv = oSelection->AddRange(oNsDOMRange);
|
||
|
RvTestResult(rv, "nsISelection::Addrange() ",0);
|
||
|
|
||
|
}
|
||
|
|
||
|
void CSelection::RemoveRange()
|
||
|
{
|
||
|
PRInt32 index= 0;
|
||
|
|
||
|
nsCOMPtr<nsIDOMRange> oNsDOMRange ;
|
||
|
nsCOMPtr<nsISelection> oSelection ;
|
||
|
|
||
|
oSelection = GetSelectionObject();
|
||
|
if (!oSelection)
|
||
|
return ;
|
||
|
|
||
|
rv = oSelection->GetRangeAt(index,getter_AddRefs(oNsDOMRange));
|
||
|
RvTestResult(rv, "nsISelection::GetRangeAt() ",0);
|
||
|
if (!oNsDOMRange)
|
||
|
RvTestResult(rv, "------>Not able to get nsIDOMRange object",0);
|
||
|
|
||
|
rv = oSelection->RemoveRange(oNsDOMRange);
|
||
|
RvTestResult(rv, "nsISelection::RemoveRange() ",0);
|
||
|
}
|
||
|
|
||
|
void CSelection::RemoveAllRanges()
|
||
|
{
|
||
|
nsCOMPtr<nsISelection> oSelection ;
|
||
|
oSelection = GetSelectionObject();
|
||
|
if (!oSelection)
|
||
|
return ;
|
||
|
rv = oSelection->RemoveAllRanges();
|
||
|
RvTestResult(rv, "nsISelection::RemoveAllRanges() ",0);
|
||
|
|
||
|
}
|
||
|
|
||
|
void CSelection::DeleteFromDocument()
|
||
|
{
|
||
|
nsCOMPtr<nsISelection> oSelection ;
|
||
|
oSelection = GetSelectionObject();
|
||
|
if (!oSelection)
|
||
|
return ;
|
||
|
rv = oSelection->DeleteFromDocument();
|
||
|
RvTestResult(rv, "nsISelection::DeleteFromDocument() ",0);
|
||
|
|
||
|
}
|
||
|
|
||
|
void CSelection::SelectionLanguageChange()
|
||
|
{
|
||
|
nsCOMPtr<nsISelection> oSelection ;
|
||
|
oSelection = GetSelectionObject();
|
||
|
if (!oSelection)
|
||
|
return ;
|
||
|
|
||
|
rv = oSelection->SelectionLanguageChange(PR_TRUE);
|
||
|
RvTestResult(rv, "nsISelection::SelectionLanguageChange() ",0);
|
||
|
|
||
|
}
|
||
|
|
||
|
void CSelection::ToString()
|
||
|
{
|
||
|
nsXPIDLString szText;
|
||
|
nsCOMPtr<nsISelection> oSelection ;
|
||
|
|
||
|
oSelection = GetSelectionObject();
|
||
|
if (!oSelection)
|
||
|
return ;
|
||
|
rv = oSelection->ToString(getter_Copies(szText));
|
||
|
RvTestResult(rv, "nsISelection::ToString() ",0);
|
||
|
}
|
||
|
|
||
|
|
||
|
nsISelection * CSelection::GetSelectionObject(BOOL bShowDialog)
|
||
|
{
|
||
|
nsCOMPtr<nsISelection> oNsSelection ;
|
||
|
|
||
|
nsCOMPtr<nsIDOMWindow> oDomWindow;
|
||
|
|
||
|
// Get the nsIDOMWindow interface in order to get nsISelection
|
||
|
rv = qaWebBrowser->GetContentDOMWindow(getter_AddRefs(oDomWindow));
|
||
|
|
||
|
if(bShowDialog)
|
||
|
RvTestResultDlg(rv, "nsIWebBrowser::GetContentDOMWindow()' rv test",true);
|
||
|
else
|
||
|
RvTestResult(rv, "nsIWebBrowser::GetContentDOMWindow()' rv test", 0);
|
||
|
if (!oDomWindow)
|
||
|
{
|
||
|
if(bShowDialog)
|
||
|
RvTestResultDlg(rv, "------>Cannot get the nsIDOMNode Object");
|
||
|
else
|
||
|
RvTestResult(rv, "------>Cannot get the nsIDOMNode Object", 0);
|
||
|
return NULL ;
|
||
|
}
|
||
|
|
||
|
if(bShowDialog)
|
||
|
RvTestResultDlg(rv, "------>nsIDOMWindow is required in order to get the nsISelection interface");
|
||
|
else
|
||
|
RvTestResult(rv, "nsIDOMWindow is required in order to get the nsISelection interface", 0);
|
||
|
|
||
|
// Now get the nsISelection interface
|
||
|
rv = oDomWindow->GetSelection(getter_AddRefs(oNsSelection));
|
||
|
|
||
|
if(bShowDialog)
|
||
|
RvTestResultDlg(rv, "nsIDOMWindow::GetSelection()");
|
||
|
else
|
||
|
RvTestResult(rv, "nsIDOMWindow::GetSelection()", 0);
|
||
|
|
||
|
if (!oNsSelection)
|
||
|
{
|
||
|
if(bShowDialog)
|
||
|
RvTestResultDlg(rv, "------>Cannot get the Selection Object");
|
||
|
else
|
||
|
RvTestResult(rv, "Cannot get the Selection Object", 0);
|
||
|
|
||
|
return NULL ;
|
||
|
}
|
||
|
|
||
|
return oNsSelection ;
|
||
|
}
|