This commit is contained in:
waterson%netscape.com 1998-11-14 08:58:29 +00:00
Родитель a4ebf2890f
Коммит 25573c4410
1 изменённых файлов: 121 добавлений и 0 удалений

121
rdf/tests/httest.cpp Normal file
Просмотреть файл

@ -0,0 +1,121 @@
/* -*- 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#include <iostream>
#include "rdf.h"
#include "nsRDFCID.h"
#include "nsINetService.h"
#include "nsITreeDMItem.h"
#include "nsITreeDataModel.h"
#include "nsITreeColumn.h"
#include "nsIToolbarDataModel.h"
#include "nsRepository.h"
#include "plstr.h"
#include "plevent.h"
// hackery to get stuff up and running
#include "nsRDFTreeDataModel.h"
#include "rdf-int.h"
#if defined(XP_PC)
#define NETLIB_DLL "netlib.dll"
#define RDF_DLL "rdf.dll"
#elif defined(XP_UNIX)
#define NETLIB_DLL "libnetlib.so"
#define RDF_DLL "librdf.so"
#elif defined(XP_MAC)
#else
#error "unknown platform"
#endif
static NS_DEFINE_IID(kNetServiceCID, NS_NETSERVICE_CID);
static NS_DEFINE_IID(kCRDFTreeDataModelCID, NS_RDFTREEDATAMODEL_CID);
static NS_DEFINE_IID(kCRDFToolbarDataModelCID, NS_RDFTOOLBARDATAMODEL_CID);
int
main(int argc, char** argv)
{
PL_InitializeEventsLib("");
nsRepository::RegisterFactory(kNetServiceCID, NETLIB_DLL, PR_FALSE, PR_FALSE);
nsRepository::RegisterFactory(kCRDFTreeDataModelCID, RDF_DLL, PR_FALSE, PR_FALSE);
nsRepository::RegisterFactory(kCRDFToolbarDataModelCID, RDF_DLL, PR_FALSE, PR_FALSE);
static NS_DEFINE_IID(kITreeDataModelIID, NS_ITREEDATAMODEL_IID);
nsITreeDataModel* tree;
nsresult res =
nsRepository::CreateInstance(kCRDFTreeDataModelCID,
NULL,
kITreeDataModelIID,
(void**) &tree);
if (NS_SUCCEEDED(res)) {
tree->InitFromURL(nsString("rdf:bookmarks"));
PRUint32 numColumns;
tree->GetColumnCount(numColumns);
nsITreeColumn** columns = new nsITreeColumn*[numColumns];
{
for (int i = 0; i < numColumns; ++i)
tree->GetNthColumn(columns[i], i);
}
{
PRUint32 size;
tree->GetTreeItemCount(size);
nsITreeDMItem* item;
for (int i = 0; i < size; ++i) {
if (NS_FAILED(tree->GetNthTreeItem(item, i)))
break;
std::cout << "Item " << i << ": ";
for (int j = 0; j < numColumns; ++j) {
nsString columnName;
columns[j]->GetColumnName(columnName);
nsString valueText;
tree->GetItemTextForColumn(valueText, item, columns[j]);
char buf[256];
std::cout << columnName.ToCString(buf, sizeof buf);
std::cout << "=\"" << valueText.ToCString(buf, sizeof buf) << "\" ";
}
std::cout << std::endl;
item->Release();
}
}
{
for (int i = 0; i < numColumns; ++i)
columns[i]->Release();
}
delete[] columns;
tree->Release();
}
return 0;
}