configurationengine/source/plugins/symbian/ConeHCRPlugin/hcrplugin/tests/unittest_hcr_header.py
changeset 0 2e8eeb919028
child 3 e7e0ae78773e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/configurationengine/source/plugins/symbian/ConeHCRPlugin/hcrplugin/tests/unittest_hcr_header.py	Thu Mar 11 17:04:37 2010 +0200
@@ -0,0 +1,90 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
+
+import unittest
+import os, shutil
+import sys
+import __init__
+
+from testautomation.utils import hex_to_bindata
+
+from hcrplugin import hcr_header
+from hcrplugin.hcr_exceptions import InvalidHcrHeaderError
+
+
+ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
+
+
+class TestHCRHeader(unittest.TestCase):
+    def test_hcr_header_dumps_empty(self):
+        hcrh = hcr_header.HcrHeader()
+        self.assertEquals(len(hcrh.dumps()), 32)
+        expected_data = hex_to_bindata(
+            "48435266 0000 0000 00000000 00000000"+\
+            "00000000 000000000000000000000000")
+        self.assertEquals(hcrh.dumps(), expected_data)
+
+    def test_hcr_header_loads_empty(self):
+        hcrh = hcr_header.HcrHeader()
+        try:
+            hcrh.loads('')
+            self.fail('parsing of empty string succeeded?')
+        except InvalidHcrHeaderError:
+            pass
+
+    def test_hcr_header_loads_invalid_signature(self):
+        hcrh = hcr_header.HcrHeader()
+        try:
+            hcrh.loads(32*' ')
+            self.fail('parsing of empty string succeeded?')
+        except InvalidHcrHeaderError:
+            pass
+
+    def test_hcr_header_loads_zero(self):
+        hcrh = hcr_header.HcrHeader()
+        header_data = hex_to_bindata(
+            "48435266 0000 0000 00000000 00000000"+\
+            "00000000 000000000000000000000000")
+        hcrh.loads(header_data)
+        self.assertEquals(hcrh.version, 0)
+        self.assertEquals(hcrh.flags, 0)
+        self.assertEquals(hcrh.nrecords, 0)
+        self.assertEquals(hcrh.lsd_offset, 0)
+        self.assertEquals(hcrh.lsd_size, 0)
+
+    def test_hcr_header_dumps_some_data(self):
+        hcrh = hcr_header.HcrHeader()
+        hcrh.version = 5
+        hcrh.flags = 6
+        hcrh.nrecords = 10
+        hcrh.lsd_offset = 18
+        hcrh.lsd_size = 32
+        expected_data = hex_to_bindata(
+            "48435266 0500 0600 0A000000 12000000"+\
+            "20000000 000000000000000000000000")
+        self.assertEquals(hcrh.dumps(), expected_data)
+
+    def test_hcr_header_loads_some_data(self):
+        hcrh = hcr_header.HcrHeader()
+        header_data = hex_to_bindata(
+            "48435266 0500 0600 0A000000 12000000"+\
+            "20000000 000000000000000000000000")
+        hcrh.loads(header_data)
+        self.assertEquals(hcrh.version, 5)
+        self.assertEquals(hcrh.flags, 6)
+        self.assertEquals(hcrh.nrecords, 10)
+        self.assertEquals(hcrh.lsd_offset, 18)
+        self.assertEquals(hcrh.lsd_size, 32)