michael@0: #ifndef mozilla__ipdltest_TestJSON_h michael@0: #define mozilla__ipdltest_TestJSON_h 1 michael@0: michael@0: #include "mozilla/_ipdltest/IPDLUnitTests.h" michael@0: michael@0: #include "mozilla/_ipdltest/PTestJSONParent.h" michael@0: #include "mozilla/_ipdltest/PTestJSONChild.h" michael@0: michael@0: #include "mozilla/_ipdltest/PTestHandleParent.h" michael@0: #include "mozilla/_ipdltest/PTestHandleChild.h" michael@0: michael@0: namespace mozilla { michael@0: namespace _ipdltest { michael@0: michael@0: class TestHandleParent : michael@0: public PTestHandleParent michael@0: { michael@0: public: michael@0: TestHandleParent() { } michael@0: virtual ~TestHandleParent() { } michael@0: }; michael@0: michael@0: class TestJSONParent : michael@0: public PTestJSONParent michael@0: { michael@0: public: michael@0: TestJSONParent() { } michael@0: virtual ~TestJSONParent() { } michael@0: michael@0: static bool RunTestInProcesses() { return true; } michael@0: static bool RunTestInThreads() { return true; } michael@0: michael@0: void Main(); michael@0: michael@0: protected: michael@0: virtual bool michael@0: RecvTest(const JSONVariant& i, michael@0: JSONVariant* o) MOZ_OVERRIDE; michael@0: michael@0: virtual PTestHandleParent* AllocPTestHandleParent() MOZ_OVERRIDE michael@0: { michael@0: return mKid = new TestHandleParent(); michael@0: } michael@0: michael@0: virtual bool DeallocPTestHandleParent(PTestHandleParent* actor) MOZ_OVERRIDE michael@0: { michael@0: delete actor; michael@0: return true; michael@0: } michael@0: michael@0: virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE michael@0: { michael@0: if (NormalShutdown != why) michael@0: fail("unexpected destruction!"); michael@0: passed("ok"); michael@0: QuitParent(); michael@0: } michael@0: michael@0: PTestHandleParent* mKid; michael@0: }; michael@0: michael@0: michael@0: class TestHandleChild : michael@0: public PTestHandleChild michael@0: { michael@0: public: michael@0: TestHandleChild() { } michael@0: virtual ~TestHandleChild() { } michael@0: }; michael@0: michael@0: class TestJSONChild : michael@0: public PTestJSONChild michael@0: { michael@0: public: michael@0: TestJSONChild() { } michael@0: virtual ~TestJSONChild() { } michael@0: michael@0: protected: michael@0: virtual bool michael@0: RecvStart() MOZ_OVERRIDE; michael@0: michael@0: virtual PTestHandleChild* AllocPTestHandleChild() MOZ_OVERRIDE michael@0: { michael@0: return mKid = new TestHandleChild(); michael@0: } michael@0: michael@0: virtual bool DeallocPTestHandleChild(PTestHandleChild* actor) MOZ_OVERRIDE michael@0: { michael@0: delete actor; michael@0: return true; michael@0: } michael@0: michael@0: virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE michael@0: { michael@0: if (NormalShutdown != why) michael@0: fail("unexpected destruction!"); michael@0: QuitChild(); michael@0: } michael@0: michael@0: PTestHandleChild* mKid; michael@0: }; michael@0: michael@0: michael@0: } // namespace _ipdltest michael@0: } // namespace mozilla michael@0: michael@0: michael@0: #endif // ifndef mozilla__ipdltest_TestJSON_h