1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ 3 */ 4 5 #ifndef TelemetryTestHelpers_h_ 6 #define TelemetryTestHelpers_h_ 7 8 #include "js/TypeDecls.h" 9 #include "mozilla/TelemetryProcessEnums.h" 10 #include "nsITelemetry.h" 11 12 using mozilla::Telemetry::ProcessID; 13 14 namespace TelemetryTestHelpers { 15 16 void CheckUintScalar(const char* aName, JSContext* aCx, 17 JS::HandleValue aSnapshot, uint32_t expectedValue); 18 19 void CheckBoolScalar(const char* aName, JSContext* aCx, 20 JS::HandleValue aSnapshot, bool expectedValue); 21 22 void CheckStringScalar(const char* aName, JSContext* aCx, 23 JS::HandleValue aSnapshot, const char* expectedValue); 24 25 void CheckKeyedUintScalar(const char* aName, const char* aKey, JSContext* aCx, 26 JS::HandleValue aSnapshot, uint32_t expectedValue); 27 28 void CheckKeyedBoolScalar(const char* aName, const char* aKey, JSContext* aCx, 29 JS::HandleValue aSnapshot, bool expectedValue); 30 31 void CheckNumberOfProperties(const char* aName, JSContext* aCx, 32 JS::HandleValue aSnapshot, 33 uint32_t expectedNumProperties); 34 35 bool EventPresent(JSContext* aCx, const JS::RootedValue& aSnapshot, 36 const nsACString& aCategory, const nsACString& aMethod, 37 const nsACString& aObject); 38 39 void GetEventSnapshot(JSContext* aCx, JS::MutableHandle<JS::Value> aResult, 40 ProcessID aProcessType = ProcessID::Parent); 41 42 void GetScalarsSnapshot(bool aKeyed, JSContext* aCx, 43 JS::MutableHandle<JS::Value> aResult, 44 ProcessID aProcessType = ProcessID::Parent); 45 46 void GetAndClearHistogram(JSContext* cx, nsCOMPtr<nsITelemetry> mTelemetry, 47 const nsACString& name, bool is_keyed); 48 49 void GetProperty(JSContext* cx, const char* name, JS::HandleValue valueIn, 50 JS::MutableHandleValue valueOut); 51 52 void GetElement(JSContext* cx, uint32_t index, JS::HandleValue valueIn, 53 JS::MutableHandleValue valueOut); 54 55 void GetSnapshots(JSContext* cx, nsCOMPtr<nsITelemetry> mTelemetry, 56 const char* name, JS::MutableHandleValue valueOut, 57 bool is_keyed); 58 59 void GetOriginSnapshot(JSContext* aCx, JS::MutableHandle<JS::Value> aResult, 60 bool aClear = false); 61 62 void GetEncodedOriginStrings( 63 JSContext* aCx, const nsCString& aEncoding, 64 nsTArray<mozilla::Tuple<nsCString, nsCString>>& aPrioStrings); 65 66 } // namespace TelemetryTestHelpers 67 68 #endif 69