added google analytics deifintion and test file

This commit is contained in:
Ronnie
2013-02-19 08:15:54 +01:00
parent 3a146fe302
commit 5f3e8807f0
2 changed files with 117 additions and 0 deletions

View File

@@ -0,0 +1,76 @@
/// <reference path="ga.d.ts" />
/// <reference path="jasmine-1.2.d.ts" />
describe("tester Google Analytics Tracker _gat object", () => {
it("can set ga script element", () => {
ga = <HTMLScriptElement>document.createElement("script");
});
it("can set aync to true", () => {
ga.async = true;
});
it("can set src to string url", () => {
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';;
});
it("can set type", () => {
ga.type = 'text/javascript';
});
});
describe("tester Google Analytics Tracker _gat object", () => {
it("can create _createTracker", () => {
_gat._createTracker('UA-65432-1');
_gat._createTracker('UA-65432-2', 't2');
});
it("can create _getTrackerByName", () => {
_gat._getTrackerByName();
_gat._getTrackerByName('t2');
});
it("can create _anonymizeIp", () => {
_gat._anonymizeIp();
});
});
describe("tester Google Analytics Code _gaq object", () => {
it("can create _push", () => {
_gaq.push(['_setAccount', 'UA-XXXXXXX-YY']);
_gaq.push(['_gat._anonymizeIp']);
_gaq.push(['_trackPageview']);
_gaq.push(() => {
var tracker = _gat._getTrackerByName('UA-65432-1');
tracker._trackPageview();
}
);
});
});
describe("tester Google Analytics Code Tracker object", () => {
it("can create Tracker object and call methods", () => {
var tracker = _gat._getTrackerByName('UA-65432-1');
tracker._trackPageview();
tracker._getName();
tracker._getAccount();
tracker._getVersion();
tracker._getVisitorCustomVar(0);
tracker._setAccount();
tracker._setCustomVar(0, "name", "value", 1);
tracker._setSampleRate("80");
tracker._setSessionCookieTimeout(1800000);
tracker._setSiteSpeedSampleRate(5);
tracker._setVisitorCookieTimeout(63072000000);
tracker._trackPageLoadTime();
});
});

41
google.analytics/ga.d.ts vendored Normal file
View File

@@ -0,0 +1,41 @@
// Type definitions for Google Analytics
// Project: https://developers.google.com/analytics/devguides/collection/gajs/
// Definitions by: Ronnie Haakon Hegelund <http://ronniehegelund.blogspot.dk>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
class Tracker {
_trackPageview(): void;
_getName(): string;
_getAccount(): string;
_getVersion(): string;
_getVisitorCustomVar(index: number); string;
_setAccount(): string;
_setCustomVar(index: number, name: string, value: string, opt_scope?: number): bool;
_setSampleRate(newRate: string): void;
_setSessionCookieTimeout(cookieTimeoutMillis: number): void;
_setSiteSpeedSampleRate(sampleRate: number): void;
_setVisitorCookieTimeout(milliseconds: number): void;
_trackPageLoadTime(): void;
}
interface GoogleAnalyticsCode {
push(commandArray: string[]): void;
push(Function): void;
}
interface GoogleAnalyticsTracker {
_getTracker(account: string): Tracker;
_createTracker(opt_account: string, opt_name?: string): Tracker;
_getTrackerByName(opt_name?: string): Tracker;
_anonymizeIp(): void;
}
interface GoogleAnalytics {
type: string;
src: string;
async: bool;
}
declare var ga: GoogleAnalytics;
declare var _gaq: GoogleAnalyticsCode;
declare var _gat: GoogleAnalyticsTracker;