diff --git a/test_cs_freshness/NDNTrafficClient.conf b/test_cs_freshness/NDNTrafficClient.conf
new file mode 100644
index 0000000..8b5e7b4
--- /dev/null
+++ b/test_cs_freshness/NDNTrafficClient.conf
@@ -0,0 +1,6 @@
+##########
+TrafficPercentage=100
+Name=ndn:/test-caching/A
+ExpectedContent=AAAAAAAA
+MustBeFresh=1
+##########
diff --git a/test_cs_freshness/NDNTrafficServer.conf b/test_cs_freshness/NDNTrafficServer.conf
new file mode 100644
index 0000000..f902ebb
--- /dev/null
+++ b/test_cs_freshness/NDNTrafficServer.conf
@@ -0,0 +1,5 @@
+##########
+Name=ndn:/test-caching
+Content=AAAAAAAA
+FreshnessPeriod=2800
+##########
diff --git a/test_cs_freshness/README.md b/test_cs_freshness/README.md
new file mode 100644
index 0000000..23ed4c2
--- /dev/null
+++ b/test_cs_freshness/README.md
@@ -0,0 +1,14 @@
+Topology: Single host.
+
+Steps:
+
+1. Start NFD.
+2. Start ndn-traffic-server to serve `ndn:/test-caching`, FreshnessPeriod=2800ms
+3. Invoke ndn-tlv-peek to send Interest `ndn:/test-caching/A`, MustBeFresh=yes. Fail if this Interest is unanswered.
+4. Pause 1000ms.
+5. Invoke ndn-tlv-peek to send Interest `ndn:/test-caching/A`, MustBeFresh=yes. Fail if this Interest is unanswered.
+6. Kill ndn-traffic-server. Check "total Interests received" equals 1.
+7. Pause 2000ms.
+8. Invoke ndn-tlv-peek to send Interest `ndn:/test-caching/A`, MustBeFresh=yes. Fail if this Interest is answered.
+9. Invoke ndn-tlv-peek to send Interest `ndn:/test-caching/A` without MustBeFresh. Fail if this Interest is unanswered.
+
diff --git a/test_cs_freshness/__init__.py b/test_cs_freshness/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test_cs_freshness/__init__.py
diff --git a/test_cs_freshness/cs-freshness-test.sh b/test_cs_freshness/cs-freshness-test.sh
new file mode 100755
index 0000000..f1be323
--- /dev/null
+++ b/test_cs_freshness/cs-freshness-test.sh
@@ -0,0 +1,70 @@
+#!/usr/bin/env bash
+mkdir -p logs
+
+clean_up() {
+    r=$(killall ndn-traffic-server 2>&1)
+    r=$(sudo killall nfd 2>&1)
+}
+
+# Start NFD.
+sudo nfd > logs/nfd.log 2>&1 &
+sleep 1
+
+# Start ndn-traffic-server to serve `ndn:/test-caching`, FreshnessPeriod=2800ms
+ndn-traffic-server NDNTrafficServer.conf > logs/server.log 2>&1 &
+sleep 1
+
+# Invoke ndn-tlv-peek to send Interest `ndn:/test-caching/A`, MustBeFresh=yes. Fail if this Interest is unanswered.
+output=$(ndn-tlv-peek -fp ndn:/test-caching/A)
+if [[ $output != 'AAAAAAAA' ]]
+then
+    echo "FAIL: Expected data for first interest: 'AAAAAAAA', Actual: '$output'"
+    clean_up
+    exit 1
+fi
+
+# Pause 1000ms.
+sleep 1
+
+# Invoke ndn-tlv-peek to send Interest `ndn:/test-caching/A`, MustBeFresh=yes. Fail if this Interest is unanswered.
+output=$(ndn-tlv-peek -fp ndn:/test-caching/A)
+if [[ $output != 'AAAAAAAA' ]]
+then
+    echo "FAIL: Expected data for second interest: 'AAAAAAAA', Actual: '$output'"
+    clean_up
+    exit 2
+fi
+
+# Kill ndn-traffic-server. Check "total Interests received" equals 1.
+killall ndn-traffic-server
+sleep 5
+output=$(grep 'Total Interests Received' logs/server.log | head -1 | cut -d = -f2 | cut -d' ' -f2)
+if [[ $output != '1' ]]
+then
+    echo "FAIL: Expected ndn-traffic-server receives 1 interest. Actual: $output"
+    clean_up
+    exit 3
+fi
+
+# Invoke ndn-tlv-peek to send Interest `ndn:/test-caching/A`, MustBeFresh=yes. Fail if this Interest is answered.
+output=$(ndn-tlv-peek -fp ndn:/test-caching/A)
+if [[ ! -z $output ]]
+then
+    echo "FAIL: Expected no data received for third interest. Actual data received: '$output'"
+    clean_up
+    exit 4
+fi
+sleep 1
+
+# Invoke ndn-tlv-peek to send Interest `ndn:/test-caching/A` without MustBeFresh. Fail if this Interest is unanswered.
+output=$(ndn-tlv-peek -p ndn:/test-caching/A)
+if [[ $output != 'AAAAAAAA' ]]
+then
+    echo "FAIL: Expected data for fourth interest: 'AAAAAAAA', Actual: '$output'"
+    clean_up
+    exit 5
+fi
+
+# clean up
+clean_up
+echo "ContentStore and freshness test scenario PASSED"
diff --git a/test_cs_freshness/test_cs_freshness.py b/test_cs_freshness/test_cs_freshness.py
new file mode 100644
index 0000000..f935f7a
--- /dev/null
+++ b/test_cs_freshness/test_cs_freshness.py
@@ -0,0 +1,36 @@
+#!/usr/bin/python2
+# -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+#
+# Copyright (C) 2014 University of Arizona
+# Author: Yi Huang <ltr120@email.arizona.edu>
+# See COPYING for copyright and distribution information.
+#
+
+import os
+import unittest
+import subprocess
+
+class test_cs_freshness(unittest.TestCase):
+    """Test case for testing ContentStore and Freshness"""
+
+    def setUp(self):
+        print "\nTesting ContentStore and Freshness"
+        print "**********************************"
+        os.chdir("test_cs_freshness")
+
+    def tearDown(self):
+        print "**********************************"
+        os.chdir("..")
+
+    def test_cs_freshness(self):
+        ret = subprocess.call(["./cs-freshness-test.sh"], shell=True)
+        print "Test script return value:", ret
+        errormsg = {
+            1 : "No data received for first interest",
+            2 : "No data received for second interest",
+            3 : "ndn-traffic-server should receive exact 1 interest",
+            4 : "Data received for third interest (expected no data received)",
+            5 : "No data received for fourth interest",
+        }
+        if (ret != 0):
+            self.fail(errormsg[ret])
