xmllite/writer: Fix a bunch of Write* methods to set closed state.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
2d9f6f7215
commit
1cb6fa5e84
|
@ -918,23 +918,76 @@ static void test_writer_state(void)
|
||||||
/* initial state */
|
/* initial state */
|
||||||
check_writer_state(writer, E_UNEXPECTED);
|
check_writer_state(writer, E_UNEXPECTED);
|
||||||
|
|
||||||
/* set output and call 'wrong' method */
|
/* set output and call 'wrong' method, WriteEndElement */
|
||||||
stream = writer_set_output(writer);
|
stream = writer_set_output(writer);
|
||||||
|
|
||||||
hr = IXmlWriter_WriteEndElement(writer);
|
hr = IXmlWriter_WriteEndElement(writer);
|
||||||
ok(hr == WR_E_INVALIDACTION, "got 0x%08x\n", hr);
|
ok(hr == WR_E_INVALIDACTION, "got 0x%08x\n", hr);
|
||||||
|
|
||||||
check_writer_state(writer, WR_E_INVALIDACTION);
|
check_writer_state(writer, WR_E_INVALIDACTION);
|
||||||
|
|
||||||
IStream_Release(stream);
|
IStream_Release(stream);
|
||||||
|
|
||||||
|
/* WriteAttributeString */
|
||||||
stream = writer_set_output(writer);
|
stream = writer_set_output(writer);
|
||||||
|
|
||||||
hr = IXmlWriter_WriteAttributeString(writer, NULL, aW, NULL, aW);
|
hr = IXmlWriter_WriteAttributeString(writer, NULL, aW, NULL, aW);
|
||||||
ok(hr == WR_E_INVALIDACTION, "got 0x%08x\n", hr);
|
ok(hr == WR_E_INVALIDACTION, "got 0x%08x\n", hr);
|
||||||
|
|
||||||
check_writer_state(writer, WR_E_INVALIDACTION);
|
check_writer_state(writer, WR_E_INVALIDACTION);
|
||||||
|
IStream_Release(stream);
|
||||||
|
|
||||||
|
/* WriteEndDocument */
|
||||||
|
stream = writer_set_output(writer);
|
||||||
|
|
||||||
|
hr = IXmlWriter_WriteEndDocument(writer);
|
||||||
|
ok(hr == WR_E_INVALIDACTION, "got 0x%08x\n", hr);
|
||||||
|
|
||||||
|
check_writer_state(writer, WR_E_INVALIDACTION);
|
||||||
|
IStream_Release(stream);
|
||||||
|
|
||||||
|
/* WriteFullEndElement */
|
||||||
|
stream = writer_set_output(writer);
|
||||||
|
|
||||||
|
hr = IXmlWriter_WriteFullEndElement(writer);
|
||||||
|
ok(hr == WR_E_INVALIDACTION, "got 0x%08x\n", hr);
|
||||||
|
|
||||||
|
check_writer_state(writer, WR_E_INVALIDACTION);
|
||||||
|
IStream_Release(stream);
|
||||||
|
|
||||||
|
/* WriteCData */
|
||||||
|
stream = writer_set_output(writer);
|
||||||
|
|
||||||
|
hr = IXmlWriter_WriteCData(writer, aW);
|
||||||
|
ok(hr == WR_E_INVALIDACTION, "got 0x%08x\n", hr);
|
||||||
|
|
||||||
|
check_writer_state(writer, WR_E_INVALIDACTION);
|
||||||
|
IStream_Release(stream);
|
||||||
|
|
||||||
|
/* WriteName */
|
||||||
|
stream = writer_set_output(writer);
|
||||||
|
|
||||||
|
hr = IXmlWriter_WriteName(writer, aW);
|
||||||
|
ok(hr == WR_E_INVALIDACTION, "got 0x%08x\n", hr);
|
||||||
|
|
||||||
|
check_writer_state(writer, WR_E_INVALIDACTION);
|
||||||
|
IStream_Release(stream);
|
||||||
|
|
||||||
|
/* WriteNmToken */
|
||||||
|
stream = writer_set_output(writer);
|
||||||
|
|
||||||
|
hr = IXmlWriter_WriteNmToken(writer, aW);
|
||||||
|
ok(hr == WR_E_INVALIDACTION, "got 0x%08x\n", hr);
|
||||||
|
|
||||||
|
check_writer_state(writer, WR_E_INVALIDACTION);
|
||||||
|
IStream_Release(stream);
|
||||||
|
|
||||||
|
/* WriteString */
|
||||||
|
stream = writer_set_output(writer);
|
||||||
|
|
||||||
|
hr = IXmlWriter_WriteString(writer, aW);
|
||||||
|
ok(hr == WR_E_INVALIDACTION, "got 0x%08x\n", hr);
|
||||||
|
|
||||||
|
check_writer_state(writer, WR_E_INVALIDACTION);
|
||||||
IStream_Release(stream);
|
IStream_Release(stream);
|
||||||
|
|
||||||
IXmlWriter_Release(writer);
|
IXmlWriter_Release(writer);
|
||||||
|
|
|
@ -626,7 +626,9 @@ static HRESULT WINAPI xmlwriter_WriteCData(IXmlWriter *iface, LPCWSTR data)
|
||||||
case XmlWriterState_ElemStarted:
|
case XmlWriterState_ElemStarted:
|
||||||
writer_close_starttag(This);
|
writer_close_starttag(This);
|
||||||
break;
|
break;
|
||||||
|
case XmlWriterState_Ready:
|
||||||
case XmlWriterState_DocClosed:
|
case XmlWriterState_DocClosed:
|
||||||
|
This->state = XmlWriterState_DocClosed;
|
||||||
return WR_E_INVALIDACTION;
|
return WR_E_INVALIDACTION;
|
||||||
default:
|
default:
|
||||||
;
|
;
|
||||||
|
@ -912,7 +914,9 @@ static HRESULT WINAPI xmlwriter_WriteName(IXmlWriter *iface, LPCWSTR pwszName)
|
||||||
{
|
{
|
||||||
case XmlWriterState_Initial:
|
case XmlWriterState_Initial:
|
||||||
return E_UNEXPECTED;
|
return E_UNEXPECTED;
|
||||||
|
case XmlWriterState_Ready:
|
||||||
case XmlWriterState_DocClosed:
|
case XmlWriterState_DocClosed:
|
||||||
|
This->state = XmlWriterState_DocClosed;
|
||||||
return WR_E_INVALIDACTION;
|
return WR_E_INVALIDACTION;
|
||||||
default:
|
default:
|
||||||
;
|
;
|
||||||
|
@ -931,7 +935,9 @@ static HRESULT WINAPI xmlwriter_WriteNmToken(IXmlWriter *iface, LPCWSTR pwszNmTo
|
||||||
{
|
{
|
||||||
case XmlWriterState_Initial:
|
case XmlWriterState_Initial:
|
||||||
return E_UNEXPECTED;
|
return E_UNEXPECTED;
|
||||||
|
case XmlWriterState_Ready:
|
||||||
case XmlWriterState_DocClosed:
|
case XmlWriterState_DocClosed:
|
||||||
|
This->state = XmlWriterState_DocClosed;
|
||||||
return WR_E_INVALIDACTION;
|
return WR_E_INVALIDACTION;
|
||||||
default:
|
default:
|
||||||
;
|
;
|
||||||
|
@ -1136,7 +1142,9 @@ static HRESULT WINAPI xmlwriter_WriteString(IXmlWriter *iface, LPCWSTR pwszText)
|
||||||
{
|
{
|
||||||
case XmlWriterState_Initial:
|
case XmlWriterState_Initial:
|
||||||
return E_UNEXPECTED;
|
return E_UNEXPECTED;
|
||||||
|
case XmlWriterState_Ready:
|
||||||
case XmlWriterState_DocClosed:
|
case XmlWriterState_DocClosed:
|
||||||
|
This->state = XmlWriterState_DocClosed;
|
||||||
return WR_E_INVALIDACTION;
|
return WR_E_INVALIDACTION;
|
||||||
default:
|
default:
|
||||||
;
|
;
|
||||||
|
|
Loading…
Reference in New Issue