@@ -99,6 +99,36 @@ const char kAsyncGA[] =
9999 " })();"
100100 " </script>" ;
101101
102+ const char kSynchronousDC [] =
103+ " %s"
104+ " <script>"
105+ " var gaJsHost = ((\" https:\" == document.location.protocol) ?"
106+ " \" https://\" : \" http://\" );"
107+ " document.write(unescape(\" %%3Cscript src='\" + gaJsHost +"
108+ " \" stats.g.doubleclick.net/dc.js'"
109+ " type='text/javascript'%%3E%%3C/script%%3E\" ));"
110+ " </script>"
111+ " <script>%s"
112+ " try { var pageTracker = _gat._getTracker(\" %s\" );"
113+ " pageTracker._trackPageview(); } catch(err) {}"
114+ " </script>" ;
115+
116+ const char kAsyncDC [] =
117+ " %s"
118+ " <script type='text/javascript'>document.write('another script');</script>"
119+ " <script>%s"
120+ " var _gaq = _gaq || [];"
121+ " _gaq.push(['_setAccount', '%s']);"
122+ " _gaq.push(['_trackPageview']);"
123+ " (function() {"
124+ " var ga = document.createElement('script');"
125+ " ga.src = ('https:' == document.location.protocol ?"
126+ " 'https://' : 'http://') +"
127+ " 'stats.g.doubleclick.net/dc.js'';"
128+ " ga.setAttribute('async', 'true');"
129+ " document.documentElement.firstChild.appendChild(ga);"
130+ " })();"
131+ " </script>" ;
102132
103133const char kAsyncGAPart1 [] =
104134 " <script type='text/javascript'>document.write('another script');</script>"
@@ -553,6 +583,17 @@ TEST_F(InsertGAFilterTest, SynchronousGACustomVarExperiment) {
553583 ValidateExpected (" extend sync ga.js for cv experiment" , input, output);
554584}
555585
586+ TEST_F (InsertGAFilterTest, SynchronousDCCustomVarExperiment) {
587+ // dc.js version of SynchronousGACustomVarExperiment.
588+ GoogleString experiment_string;
589+ SetUpCustomVarExperiment (false , &experiment_string);
590+ GoogleString input = StringPrintf (kSynchronousDC , " " , " " , kGaId );
591+ GoogleString output = StringPrintf (kSynchronousDC , " <head/>" , StringPrintf (
592+ kGAExperimentSnippet , kGASpeedTracking , 4 ,
593+ experiment_string.c_str ()).c_str (), kGaId );
594+ ValidateExpected (" extend sync dc.js for cv experiment" , input, output);
595+ }
596+
556597TEST_F (InsertGAFilterTest, SynchronousGAContentExperiment) {
557598 // Show that we can add content experiment tracking to existing synchronous
558599 // ga.js usage.
@@ -592,6 +633,17 @@ TEST_F(InsertGAFilterTest, AsynchronousGACustomVarExperiment) {
592633 ValidateExpected (" extend async ga.js for cv experiment" , input, output);
593634}
594635
636+ TEST_F (InsertGAFilterTest, AsynchronousDCCustomVarExperiment) {
637+ // dc.js version of AsynchronousGACustomVarExperiment.
638+ GoogleString experiment_string;
639+ SetUpCustomVarExperiment (false , &experiment_string);
640+ GoogleString input = StringPrintf (kAsyncDC , " " , " " , kGaId );
641+ GoogleString output = StringPrintf (kAsyncDC , " <head/>" , StringPrintf (
642+ kGAExperimentSnippet , kGASpeedTracking , 4 ,
643+ experiment_string.c_str ()).c_str (), kGaId );
644+ ValidateExpected (" extend async dc.js for cv experiment" , input, output);
645+ }
646+
595647TEST_F (InsertGAFilterTest, AsynchronousGAContentExperiment) {
596648 // Show that we can add content experiment tracking to existing async ga.js
597649 // usage.
0 commit comments