summaryrefslogtreecommitdiffstats
path: root/toolkit/components/telemetry/tests/gtest/TelemetryFixture.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/telemetry/tests/gtest/TelemetryFixture.cpp')
-rw-r--r--toolkit/components/telemetry/tests/gtest/TelemetryFixture.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/toolkit/components/telemetry/tests/gtest/TelemetryFixture.cpp b/toolkit/components/telemetry/tests/gtest/TelemetryFixture.cpp
new file mode 100644
index 0000000000..35742654f6
--- /dev/null
+++ b/toolkit/components/telemetry/tests/gtest/TelemetryFixture.cpp
@@ -0,0 +1,28 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+#include "TelemetryFixture.h"
+#include "mozilla/dom/SimpleGlobalObject.h"
+
+using namespace mozilla;
+
+void TelemetryTestFixture::SetUp() {
+ mTelemetry = do_GetService("@mozilla.org/base/telemetry;1");
+
+ mCleanGlobal = dom::SimpleGlobalObject::Create(
+ dom::SimpleGlobalObject::GlobalType::BindingDetail);
+
+ // The test must fail if we failed getting the global.
+ ASSERT_NE(mCleanGlobal, nullptr)
+ << "SimpleGlobalObject must return a valid global object.";
+}
+
+AutoJSContextWithGlobal::AutoJSContextWithGlobal(JSObject* aGlobalObject)
+ : mCx(nullptr) {
+ // The JS API must initialize correctly.
+ JS::Rooted<JSObject*> globalObject(dom::RootingCx(), aGlobalObject);
+ MOZ_ALWAYS_TRUE(mJsAPI.Init(globalObject));
+}
+
+JSContext* AutoJSContextWithGlobal::GetJSContext() const { return mJsAPI.cx(); }