/* Any copyright is dedicated to the Public Domain. * http://creativecommons.org/publicdomain/zero/1.0/ */ #ifndef TelemetryTestHelpers_h_ #define TelemetryTestHelpers_h_ #include "js/TypeDecls.h" #include "mozilla/TelemetryProcessEnums.h" #include "nsITelemetry.h" using mozilla::Telemetry::ProcessID; namespace TelemetryTestHelpers { void CheckUintScalar(const char* aName, JSContext* aCx, JS::Handle aSnapshot, uint32_t expectedValue); void CheckBoolScalar(const char* aName, JSContext* aCx, JS::Handle aSnapshot, bool expectedValue); void CheckStringScalar(const char* aName, JSContext* aCx, JS::Handle aSnapshot, const char* expectedValue); void CheckKeyedUintScalar(const char* aName, const char* aKey, JSContext* aCx, JS::Handle aSnapshot, uint32_t expectedValue); void CheckKeyedBoolScalar(const char* aName, const char* aKey, JSContext* aCx, JS::Handle aSnapshot, bool expectedValue); void CheckNumberOfProperties(const char* aName, JSContext* aCx, JS::Handle aSnapshot, uint32_t expectedNumProperties); bool EventPresent(JSContext* aCx, const JS::RootedValue& aSnapshot, const nsACString& aCategory, const nsACString& aMethod, const nsACString& aObject); nsTArray EventValuesToArray(JSContext* aCx, const JS::RootedValue& aSnapshot, const nsAString& aCategory, const nsAString& aMethod, const nsAString& aObject); void GetEventSnapshot(JSContext* aCx, JS::MutableHandle aResult, ProcessID aProcessType = ProcessID::Parent); void GetScalarsSnapshot(bool aKeyed, JSContext* aCx, JS::MutableHandle aResult, ProcessID aProcessType = ProcessID::Parent); void GetAndClearHistogram(JSContext* cx, nsCOMPtr mTelemetry, const nsACString& name, bool is_keyed); void GetProperty(JSContext* cx, const char* name, JS::Handle valueIn, JS::MutableHandle valueOut); void GetElement(JSContext* cx, uint32_t index, JS::Handle valueIn, JS::MutableHandle valueOut); void GetSnapshots(JSContext* cx, nsCOMPtr mTelemetry, const char* name, JS::MutableHandle valueOut, bool is_keyed); } // namespace TelemetryTestHelpers #endif