msxml3: IXMLDOMSchemaCollection::get() is a stub for version 6.

This commit is contained in:
Nikolay Sivov 2012-01-20 04:00:23 +03:00 committed by Alexandre Julliard
parent 1ec21e323b
commit ca046f9eb5
4 changed files with 127 additions and 4 deletions

View File

@ -2508,10 +2508,13 @@ static HRESULT WINAPI domdoc_put_onTransformNode(
static HRESULT WINAPI domdoc_get_namespaces(
IXMLDOMDocument3* iface,
IXMLDOMSchemaCollection** schemaCollection )
IXMLDOMSchemaCollection** collection )
{
domdoc *This = impl_from_IXMLDOMDocument3( iface );
FIXME("(%p)->(%p)\n", This, schemaCollection);
FIXME("(%p)->(%p): stub\n", This, collection);
if (!collection) return E_POINTER;
return E_NOTIMPL;
}

View File

@ -1139,10 +1139,13 @@ static HRESULT WINAPI schema_cache_get(IXMLDOMSchemaCollection2* iface, BSTR uri
IXMLDOMNode** node)
{
schema_cache* This = impl_from_IXMLDOMSchemaCollection2(iface);
xmlChar* name;
cache_entry* entry;
xmlChar* name;
TRACE("(%p)->(%s %p)\n", This, wine_dbgstr_w(uri), node);
if (This->version == MSXML6) return E_NOTIMPL;
if (!node)
return E_POINTER;
@ -1438,7 +1441,7 @@ HRESULT SchemaCache_create(MSXML_VERSION version, IUnknown* outer, void** obj)
#else
HRESULT SchemaCache_create(MSXML_VERSION version, IUnknown* pUnkOuter, void** ppObj)
HRESULT SchemaCache_create(MSXML_VERSION version, IUnknown* outer, void** obj)
{
MESSAGE("This program tried to use a SchemaCache object, but\n"
"libxml2 support was not present at compile time.\n");

View File

@ -11140,6 +11140,86 @@ static void test_nodeValue(void)
IXMLDOMDocument_Release(doc);
}
static char namespacesA[] =
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
" <ns1:elem1 xmlns:ns1=\"http://blah.org\">"
" <ns1:elem2/>"
" <ns1:elem3/>"
" <ns1:elem4/>"
" <elem5 xmlns=\"http://blahblah.org\"/>"
" <ns1:elem6>true</ns1:elem6>"
" </ns1:elem1>";
static void test_get_namespaces(void)
{
IXMLDOMSchemaCollection *collection, *collection2;
IXMLDOMDocument2 *doc;
IXMLDOMNode *node;
VARIANT_BOOL b;
HRESULT hr;
LONG len;
doc = create_document(&IID_IXMLDOMDocument2);
if (!doc) return;
/* null pointer */
hr = IXMLDOMDocument2_get_namespaces(doc, NULL);
EXPECT_HR(hr, E_POINTER);
/* no document loaded */
collection = (void*)0xdeadbeef;
hr = IXMLDOMDocument2_get_namespaces(doc, &collection);
todo_wine
EXPECT_HR(hr, S_OK);
if (hr != S_OK)
{
IXMLDOMDocument_Release(doc);
return;
}
EXPECT_REF(collection, 2);
collection2 = (void*)0xdeadbeef;
hr = IXMLDOMDocument2_get_namespaces(doc, &collection2);
EXPECT_HR(hr, S_OK);
ok(collection == collection2, "got %p\n", collection2);
EXPECT_REF(collection, 3);
IXMLDOMSchemaCollection_Release(collection);
len = -1;
hr = IXMLDOMSchemaCollection_get_length(collection, &len);
EXPECT_HR(hr, S_OK);
ok(len == 0, "got %d\n", len);
IXMLDOMSchemaCollection_Release(collection);
/* now with document */
hr = IXMLDOMDocument2_loadXML(doc, _bstr_(namespacesA), &b);
EXPECT_HR(hr, S_OK);
hr = IXMLDOMDocument2_get_namespaces(doc, &collection);
EXPECT_HR(hr, S_OK);
len = -1;
hr = IXMLDOMSchemaCollection_get_length(collection, &len);
EXPECT_HR(hr, S_OK);
ok(len == 2, "got %d\n", len);
/* try to lookup some uris */
node = (void*)0xdeadbeef;
hr = IXMLDOMSchemaCollection_get(collection, _bstr_("http://blah.org"), &node);
EXPECT_HR(hr, S_OK);
ok(node == NULL, "got %p\n", node);
node = (void*)0xdeadbeef;
hr = IXMLDOMSchemaCollection_get(collection, _bstr_("http://blah1.org"), &node);
EXPECT_HR(hr, S_OK);
ok(node == NULL, "got %p\n", node);
IXMLDOMSchemaCollection_Release(collection);
IXMLDOMDocument2_Release(doc);
free_bstrs();
}
START_TEST(domdoc)
{
IXMLDOMDocument *doc;
@ -11216,6 +11296,7 @@ START_TEST(domdoc)
test_getAttributeNode();
test_supporterrorinfo();
test_nodeValue();
test_get_namespaces();
test_xsltemplate();

View File

@ -2061,6 +2061,41 @@ static void test_dispex(void)
IXMLDOMSchemaCollection_Release(cache);
}
static void test_get(void)
{
static const WCHAR uriW[] = {'u','r','i',0};
IXMLDOMSchemaCollection2 *cache;
IXMLDOMNode *node;
HRESULT hr;
BSTR s;
cache = create_cache_version(60, &IID_IXMLDOMSchemaCollection2);
if (!cache) return;
hr = IXMLDOMSchemaCollection2_get(cache, NULL, NULL);
EXPECT_HR(hr, E_NOTIMPL);
s = SysAllocString(uriW);
hr = IXMLDOMSchemaCollection2_get(cache, s, &node);
EXPECT_HR(hr, E_NOTIMPL);
SysFreeString(s);
IXMLDOMSchemaCollection2_Release(cache);
cache = create_cache_version(40, &IID_IXMLDOMSchemaCollection2);
if (!cache) return;
hr = IXMLDOMSchemaCollection2_get(cache, NULL, NULL);
EXPECT_HR(hr, E_POINTER);
s = SysAllocString(uriW);
hr = IXMLDOMSchemaCollection2_get(cache, s, &node);
EXPECT_HR(hr, S_OK);
SysFreeString(s);
IXMLDOMSchemaCollection2_Release(cache);
}
START_TEST(schema)
{
HRESULT r;
@ -2076,6 +2111,7 @@ START_TEST(schema)
test_XDR_datatypes();
test_validate_on_load();
test_dispex();
test_get();
CoUninitialize();
}