jscript: Added SCRIPTSTATE_CONNECTED implementation.
diff --git a/dlls/jscript/jscript.c b/dlls/jscript/jscript.c index 938b64e..c4bd890 100644 --- a/dlls/jscript/jscript.c +++ b/dlls/jscript/jscript.c
@@ -264,6 +264,7 @@ switch(ss) { case SCRIPTSTATE_STARTED: + case SCRIPTSTATE_CONNECTED: /* FIXME */ if(This->ctx->state == SCRIPTSTATE_CLOSED) return E_UNEXPECTED; @@ -308,9 +309,15 @@ if(This->thread_id != GetCurrentThreadId()) return E_UNEXPECTED; - clear_script_queue(This); - if(This->ctx) { + if(This->ctx->state == SCRIPTSTATE_CONNECTED) + change_state(This, SCRIPTSTATE_DISCONNECTED); + + clear_script_queue(This); + + if(This->ctx->state == SCRIPTSTATE_DISCONNECTED) + change_state(This, SCRIPTSTATE_INITIALIZED); + if(This->ctx->named_items) { named_item_t *iter, *iter2;
diff --git a/dlls/jscript/tests/jscript.c b/dlls/jscript/tests/jscript.c index 35818cc..4cc01c9 100644 --- a/dlls/jscript/tests/jscript.c +++ b/dlls/jscript/tests/jscript.c
@@ -61,6 +61,8 @@ DEFINE_EXPECT(GetLCID); DEFINE_EXPECT(OnStateChange_STARTED); +DEFINE_EXPECT(OnStateChange_CONNECTED); +DEFINE_EXPECT(OnStateChange_DISCONNECTED); DEFINE_EXPECT(OnStateChange_CLOSED); DEFINE_EXPECT(OnStateChange_INITIALIZED); DEFINE_EXPECT(OnEnterScript); @@ -134,6 +136,12 @@ case SCRIPTSTATE_STARTED: CHECK_EXPECT(OnStateChange_STARTED); return S_OK; + case SCRIPTSTATE_CONNECTED: + CHECK_EXPECT(OnStateChange_CONNECTED); + return S_OK; + case SCRIPTSTATE_DISCONNECTED: + CHECK_EXPECT(OnStateChange_DISCONNECTED); + return S_OK; case SCRIPTSTATE_CLOSED: CHECK_EXPECT(OnStateChange_CLOSED); return S_OK; @@ -376,9 +384,20 @@ hres = IActiveScriptParse_InitNew(parse); ok(hres == E_UNEXPECTED, "InitNew failed: %08x, expected E_UNEXPECTED\n", hres); + SET_EXPECT(OnStateChange_CONNECTED); + hres = IActiveScript_SetScriptState(script, SCRIPTSTATE_CONNECTED); + ok(hres == S_OK, "SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08x\n", hres); + CHECK_CALLED(OnStateChange_CONNECTED); + + test_state(script, SCRIPTSTATE_CONNECTED); + + SET_EXPECT(OnStateChange_DISCONNECTED); + SET_EXPECT(OnStateChange_INITIALIZED); SET_EXPECT(OnStateChange_CLOSED); hres = IActiveScript_Close(script); ok(hres == S_OK, "Close failed: %08x\n", hres); + CHECK_CALLED(OnStateChange_DISCONNECTED); + CHECK_CALLED(OnStateChange_INITIALIZED); CHECK_CALLED(OnStateChange_CLOSED); test_state(script, SCRIPTSTATE_CLOSED);