test for register and clear interests in ccnxtunnel
diff --git a/test/test-ccnx-tunnel.cc b/test/test-ccnx-tunnel.cc
index 03f4250..5a5abc5 100644
--- a/test/test-ccnx-tunnel.cc
+++ b/test/test-ccnx-tunnel.cc
@@ -22,9 +22,21 @@
   virtual Name
   queryRoutableName(const Name &name);
 
+  void
+  overridePrefix();
+
 };
 
-DummyTunnel::DummyTunnel() : CcnxTunnel() {m_localPrefix = Name("/local");}
+DummyTunnel::DummyTunnel() : CcnxTunnel()
+{
+  m_localPrefix = Name("/local");
+}
+
+void
+DummyTunnel::overridePrefix()
+{
+  CcnxWrapper::setInterestFilter(m_localPrefix, bind(&DummyTunnel::handleTunneledInterest, this, _1));
+}
 
 Name
 DummyTunnel::queryRoutableName (const Name &name)
@@ -36,9 +48,12 @@
 CcnxWrapperPtr t2(new DummyTunnel());
 CcnxWrapperPtr c1(new CcnxWrapper());
 
+DummyTunnel t3;
+
 // global data callback counter;
 int g_dc_i = 0;
 int g_dc_o = 0;
+int g_ic = 0;
 
 void innerCallback(const Name &name, const Bytes &content)
 {
@@ -52,7 +67,12 @@
   g_dc_o ++;
 }
 
-
+void interestCallback(const Name &name)
+{
+  string strName = name.toString();
+  t3.publishData(name, (const unsigned char *)strName.c_str(), strName.size(), 5);
+  g_ic++;
+}
 
 BOOST_AUTO_TEST_CASE (CcnxTunnelTest)
 {
@@ -79,5 +99,29 @@
 
 }
 
+BOOST_AUTO_TEST_CASE (CcnxTunnelRegister)
+{
+
+  g_ic = 0;
+  g_dc_i = 0;
+  t3.overridePrefix();
+  t3.setInterestFilter(Name("/t3"), bind(interestCallback, _1));
+  usleep(100000);
+  Closure *innerClosure = new Closure(1, bind(innerCallback, _1, _2));
+  t1->sendInterest(Name("/t3/hello"), innerClosure);
+  usleep(100000);
+  BOOST_CHECK_EQUAL(g_dc_i, 1);
+  BOOST_CHECK_EQUAL(g_ic, 1);
+
+  t3.clearInterestFilter(Name("/t3"));
+  usleep(100000);
+  t1->sendInterest(Name("/t3/hello-there"), innerClosure);
+  usleep(100000);
+  BOOST_CHECK_EQUAL(g_dc_i, 1);
+  BOOST_CHECK_EQUAL(g_ic, 1);
+  delete innerClosure;
+
+}
+
 
 BOOST_AUTO_TEST_SUITE_END()