diff --git a/google.analytics/ga-tests.ts b/google.analytics/ga-tests.ts index 03d5c2ed5..23edc0fe8 100644 --- a/google.analytics/ga-tests.ts +++ b/google.analytics/ga-tests.ts @@ -1,25 +1,15 @@ /// /// -describe("tester Google Analytics Tracker _gat object", () => { - - it("can set ga script element", () => { - ga = document.createElement("script"); +describe('UniversalGoogleAnalytics', () => { + it('should be a function', () => { + ga('create', 'UA-65432-1'); + ga('send', 'pageview'); }); - - it("can set aync to true", () => { - ga.async = true; + it('should have methods', () => { + ga.getAll(); + ga.getByName('aNamedTracker'); }); - - 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", () => { @@ -27,7 +17,7 @@ describe("tester Google Analytics Tracker _gat object", () => { _gat._createTracker('UA-65432-1'); _gat._createTracker('UA-65432-2', 't2'); }); - + it("can create _getTrackerByName", () => { _gat._getTrackerByName(); _gat._getTrackerByName('t2'); @@ -36,7 +26,7 @@ describe("tester Google Analytics Tracker _gat object", () => { it("can create _anonymizeIp", () => { _gat._anonymizeIp(); }); - + }); describe("tester Google Analytics Code _gaq object", () => { @@ -50,12 +40,12 @@ describe("tester Google Analytics Code _gaq object", () => { tracker._trackPageview(); } ); - }); + }); }); describe("tester Google Analytics Code Tracker object", () => { - it("can create Tracker object and call methods", () => { + it("can create Tracker object and call methods", () => { var tracker = _gat._getTrackerByName('UA-65432-1'); tracker._trackPageview(); tracker._getName(); diff --git a/google.analytics/ga.d.ts b/google.analytics/ga.d.ts index 032e236ee..f711f894e 100644 --- a/google.analytics/ga.d.ts +++ b/google.analytics/ga.d.ts @@ -30,12 +30,19 @@ interface GoogleAnalyticsTracker { _anonymizeIp(): void; } -interface GoogleAnalytics { - type: string; - src: string; - async: boolean; +interface UniversalGoogleAnalytics { + (command: string, trackingId:string, opt_configObject?: {}): UniversalTracker; + (command: string, ...rest): void; + getAll(): UniversalTracker[]; + getByName(trackerName: string): UniversalTracker; } -declare var ga: GoogleAnalytics; +interface UniversalTracker { + get(...any): any; + send(...any): any; + set(...any): any; +} + +declare var ga: UniversalGoogleAnalytics; declare var _gaq: GoogleAnalyticsCode; declare var _gat: GoogleAnalyticsTracker;