diff --git a/t/plugin/piwik.t b/t/plugin/piwik.t
index 5559cc6..a2ad05c 100644
--- a/t/plugin/piwik.t
+++ b/t/plugin/piwik.t
@@ -3,12 +3,12 @@
 use Test::Mojo;
 
 # Test the documentation
-my $t = Test::Mojo->new('Kalamar');
-
-$t->app->plugin('Piwik' => {
-  url => 'https://piwik.korap.ids-mannheim.de/',
-  site_id => 1,
-  embed => 1
+my $t = Test::Mojo->new('Kalamar' => {
+  'Piwik' => {
+    url => 'https://piwik.korap.ids-mannheim.de/',
+    site_id => 1,
+    embed => 1
+  }
 });
 
 # Load piwik
@@ -18,27 +18,63 @@
   ->status_is(200)
   ->text_like('section[name=piwik-opt-out] h3', qr!can I opt-out!)
   ->element_exists('section[name=piwik-opt-out] iframe')
+  ->content_unlike(qr!var _paq!)
+  ->content_unlike(qr!window\.addEventListener\('korapRequest!)
+  ->content_unlike(qr!setDocumentTitle!)
+  ->content_unlike(qr!setCustomUrl!)
+  ->content_unlike(qr!trackPageView!)
+  ->element_exists('script[src$="/js/tracking.js"]')
+  ;
+
+$t = Test::Mojo->new('Kalamar' => {
+  'Piwik' => {
+    url => 'https://piwik.korap.ids-mannheim.de/',
+    site_id => 1,
+    embed => 1,
+    append => 'console.log("fun")'
+  }
+});
+
+$t->app->plugin('Kalamar::Plugin::Piwik');
+
+is($t->app->piwik_tag('as-script'), '<script src="/js/tracking.js"></script>' .
+     '<script src="https://piwik.korap.ids-mannheim.de/piwik.js" async defer></script>');
+
+$t->get_ok('/doc/faq')
+  ->status_is(200)
+  ->text_like('section[name=piwik-opt-out] h3', qr!can I opt-out!)
+  ->element_exists('section[name=piwik-opt-out] iframe')
+  ->element_exists('script[src$="/js/tracking.js"]')
+  ->content_unlike(qr!_paq!)
+  ->header_like('Content-Security-Policy',qr!connect-src 'self' [^;]*?https://piwik\.korap\.ids-mannheim\.de/!)
+  ->header_like('Content-Security-Policy',qr!img-src 'self' [^;]*?https://piwik\.korap\.ids-mannheim\.de/!)
+  ->header_like('Content-Security-Policy',qr!script-src 'self' [^;]*?https://piwik.korap.ids-mannheim.de/!)
+  ;
+
+$t->get_ok('/js/tracking.js')
+  ->status_is(200)
   ->content_like(qr!var _paq!)
-  ->content_like(qr!window\.addEventListener\('korapRequest!)
-  ->content_like(qr!setDocumentTitle!)
-  ->content_like(qr!setCustomUrl!)
-  ->content_like(qr!trackPageView!)
+  ->content_like(qr!;console\.log\("fun"\)!)
+  ->content_like(qr!;window\.addEventListener\('korapRequest!)
   ;
 
 # No embedding
-$t->app->plugin('Piwik' => {
-  url => 'https://piwik.korap.ids-mannheim.de/',
-  site_id => 1,
-  embed => 0
+$t = Test::Mojo->new('Kalamar' => {
+  'Piwik' => {
+    url => 'https://piwik.korap.ids-mannheim.de/',
+    site_id => 1,
+    embed => 0
+  }
 });
+$t->app->plugin('Kalamar::Plugin::Piwik');
 
 $t->get_ok('/doc/faq')
   ->status_is(200)
   ->text_like('section[name=piwik-opt-out] h3', qr!can I opt-out!)
   ->element_exists_not('section[name=piwik-opt-out] iframe')
-  ->content_unlike(qr!var _paq!)
+  ->content_unlike(qr!_paq!)
   ->content_unlike(qr!window\.addEventListener\('korapRequest!)
+  ->element_exists_not('script[src$="/js/tracking.js"]')
   ;
 
-
-done_testing();
+done_testing;
