summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Pitt <martinpitt@gnome.org>2013-09-03 09:21:12 +0200
committerMartin Pitt <martinpitt@gnome.org>2013-09-03 09:21:12 +0200
commitd070b4b83bd2efb47ce778bd54ff5d44be61cd8f (patch)
tree7399c973d814cc03222155d33956408bbab3dca3
parent578ad1e09b28a7bcbb51034f1f117ac16c792c96 (diff)
Linux integration tests: add test for vendor/product/serial strings
This exercises the non-ASCII character filtering and the three cases "valid ASCII", "valid UTF-8", and "invalid/unprintable ASCII".
-rwxr-xr-xsrc/linux/integration-test31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/linux/integration-test b/src/linux/integration-test
index e3cf290..a7b62c1 100755
--- a/src/linux/integration-test
+++ b/src/linux/integration-test
@@ -536,6 +536,37 @@ class Tests(unittest.TestCase):
self.assertEqual(self.get_dbus_property('OnLowBattery'), False)
self.stop_daemon()
+ def test_vendor_strings(self):
+ '''manufacturer/model_name/serial_number with valid and invalid strings'''
+
+ bat0 = self.testbed.add_device('power_supply', 'BAT0', None,
+ ['type', 'Battery',
+ 'present', '1',
+ 'status', 'Discharging',
+ 'energy_full', '60000000',
+ 'energy_full_design', '80000000',
+ 'energy_now', '1500000',
+ 'voltage_now', '12000000',
+ # valid ASCII string
+ 'serial_number', '123ABC',
+ # valid UTF-8 string
+ 'manufacturer', '⍾ Batt Inc. ☢',
+ ], [])
+
+ # string with invalid chars
+ self.testbed.set_attribute_binary(bat0, 'model_name', b'AB\xFFC12\x013')
+
+ self.start_daemon()
+ devs = self.proxy.EnumerateDevices()
+ self.assertEqual(len(devs), 1)
+ bat0_up = devs[0]
+
+ self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Serial'), '123ABC')
+ self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Vendor'), ' Batt Inc. ')
+ self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Model'), 'ABC123')
+ self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Energy'), 1.5)
+ self.stop_daemon()
+
#
# Helper methods
#