Index: test/filterListener.js
===================================================================
--- a/test/filterListener.js
+++ b/test/filterListener.js
@@ -27,17 +27,18 @@
 let SpecialSubscription = null;
 let ElemHideException = null;
 
 exports.setUp = function(callback)
 {
   sandboxedRequire = createSandbox({
     extraExports: {
       elemHide: ["knownFilters"],
-      elemHideEmulation: ["filters"]
+      elemHideEmulation: ["filters"],
+      snippets: ["filters"]
     }
   });
 
   // We need to require the filterListener module so that filter changes will be
   // noticed, even though we don't directly use the module here.
   sandboxedRequire("../lib/filterListener");
 
   (
@@ -89,18 +90,23 @@
       result.elemhide.push(filter.text);
   }
 
   let elemHideEmulation = sandboxedRequire("../lib/elemHideEmulation");
   result.elemhideemulation = [];
   for (let filterText of elemHideEmulation.filters)
     result.elemhideemulation.push(filterText);
 
+  let snippets = sandboxedRequire("../lib/snippets");
+  result.snippets = [];
+  for (let filterText of snippets.filters)
+    result.snippets.push(filterText);
+
   let types = ["blacklist", "whitelist", "elemhide", "elemhideexception",
-               "elemhideemulation"];
+               "elemhideemulation", "snippets"];
   for (let type of types)
   {
     if (!(type in expected))
       expected[type] = [];
     else
       expected[type].sort();
     result[type].sort();
   }
@@ -320,8 +326,35 @@
   FilterStorage.removeSubscription(subscription4);
   checkKnownFilters(test, "remove subscription from the list", {blacklist: [filter1.text]});
 
   subscription3.disabled = false;
   checkKnownFilters(test, "enable exception rules", {blacklist: [filter1.text], whitelist: [filter2.text]});
 
   test.done();
 };
+
+exports.testSnippetFilters = function(test)
+{
+  let filter1 = Filter.fromText("example.com#$#filter1");
+  let filter2 = Filter.fromText("example.com#$#filter2");
+
+  let subscription1 = Subscription.fromURL("http://test1/");
+  subscription1.filters = [filter1, filter2];
+
+  FilterStorage.addSubscription(subscription1);
+  checkKnownFilters(test, "add subscription with filter1 and filter2", {});
+
+  let subscription2 = Subscription.fromURL("http://test2/");
+  subscription2.type = "circumvention";
+  subscription2.filters = [filter1];
+
+  FilterStorage.addSubscription(subscription2);
+  checkKnownFilters(test, "add subscription of type circumvention with filter1", {snippets: [filter1.text]});
+
+  let subscription3 = Subscription.fromURL("~foo");
+  subscription3.filters = [filter2];
+
+  FilterStorage.addSubscription(subscription3);
+  checkKnownFilters(test, "add special subscription with filter2", {snippets: [filter1.text, filter2.text]});
+
+  test.done();
+};
