summaryrefslogtreecommitdiffstats
path: root/dom/media/webrtc/transport/test/mtransport_test_utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'dom/media/webrtc/transport/test/mtransport_test_utils.h')
-rw-r--r--dom/media/webrtc/transport/test/mtransport_test_utils.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/dom/media/webrtc/transport/test/mtransport_test_utils.h b/dom/media/webrtc/transport/test/mtransport_test_utils.h
new file mode 100644
index 0000000000..04031c0dc2
--- /dev/null
+++ b/dom/media/webrtc/transport/test/mtransport_test_utils.h
@@ -0,0 +1,57 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+// Original author: ekr@rtfm.com
+
+#ifndef mtransport_test_utils_h__
+#define mtransport_test_utils_h__
+
+#include "nsCOMPtr.h"
+#include "nsNetCID.h"
+
+#include "nsISerialEventTarget.h"
+#include "nsPISocketTransportService.h"
+#include "nsServiceManagerUtils.h"
+#include "nsThreadUtils.h"
+
+class MtransportTestUtils {
+ public:
+ MtransportTestUtils() { InitServices(); }
+
+ ~MtransportTestUtils() = default;
+
+ void InitServices() {
+ nsresult rv;
+ sts_target_ = do_GetService(NS_SOCKETTRANSPORTSERVICE_CONTRACTID, &rv);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
+ sts_ = do_GetService(NS_SOCKETTRANSPORTSERVICE_CONTRACTID, &rv);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
+ }
+
+ nsISerialEventTarget* sts_target() { return sts_target_; }
+
+ nsresult SyncDispatchToSTS(nsIRunnable* aRunnable) {
+ return SyncDispatchToSTS(do_AddRef(aRunnable));
+ }
+ nsresult SyncDispatchToSTS(already_AddRefed<nsIRunnable>&& aRunnable) {
+ return NS_DispatchAndSpinEventLoopUntilComplete(
+ "MtransportTestUtils::SyncDispatchToSts"_ns, sts_target_,
+ std::move(aRunnable));
+ }
+
+ private:
+ nsCOMPtr<nsISerialEventTarget> sts_target_;
+ nsCOMPtr<nsPISocketTransportService> sts_;
+};
+
+#define CHECK_ENVIRONMENT_FLAG(envname) \
+ char* test_flag = getenv(envname); \
+ if (!test_flag || strcmp(test_flag, "1")) { \
+ printf("To run this test set %s=1 in your environment\n", envname); \
+ exit(0); \
+ }
+
+#endif