From e6151b3b710d873f7091b6a9e5d09bc64fc217c4 Mon Sep 17 00:00:00 2001 From: Sandor Dornbush Date: Tue, 5 Jul 2011 15:19:21 -0700 Subject: [PATCH] Fix polar tests and sensor strings. --- MyTracks/res/values-ca/strings.xml | 7 +-- MyTracks/res/values-es-rES/strings.xml | 9 +-- MyTracks/res/values-ja/strings.xml | 2 - MyTracks/res/values-ru/strings.xml | 2 - .../sensors/PolarMessageParserTest.java | 59 ++++++++++++++----- 5 files changed, 47 insertions(+), 32 deletions(-) diff --git a/MyTracks/res/values-ca/strings.xml b/MyTracks/res/values-ca/strings.xml index 39d3236d6..5f7b54f2f 100644 --- a/MyTracks/res/values-ca/strings.xml +++ b/MyTracks/res/values-ca/strings.xml @@ -410,10 +410,5 @@ limitations under the License. S\'està enviant - NONE - ANT+ Sensors - SRM ANT+ Bridge - Polar Bluetooth - Zephyr Bluetooth - + Cap diff --git a/MyTracks/res/values-es-rES/strings.xml b/MyTracks/res/values-es-rES/strings.xml index faf1b5c85..169e3b78a 100644 --- a/MyTracks/res/values-es-rES/strings.xml +++ b/MyTracks/res/values-es-rES/strings.xml @@ -129,10 +129,7 @@ limitations under the License. --> - NONE - ANT+ Sensors - SRM ANT+ Bridge - Polar Bluetooth - Zephyr Bluetooth - + Ninguna + ANT+ Sensores + SRM ANT+ Puente diff --git a/MyTracks/res/values-ja/strings.xml b/MyTracks/res/values-ja/strings.xml index d6b75189f..a23fb0bbf 100644 --- a/MyTracks/res/values-ja/strings.xml +++ b/MyTracks/res/values-ja/strings.xml @@ -467,8 +467,6 @@ limitations under the License. なし ANT+ センサー SRM ANT+ ブリッジ - Polar Bluetooth - Zephyr Bluetooth トラック記録通知受信 diff --git a/MyTracks/res/values-ru/strings.xml b/MyTracks/res/values-ru/strings.xml index 77900c7c8..76361ce98 100644 --- a/MyTracks/res/values-ru/strings.xml +++ b/MyTracks/res/values-ru/strings.xml @@ -494,8 +494,6 @@ limitations under the License. Нет ANT+ Датчик SRM ANT+ Bridge - Polar Bluetooth - Zephyr Bluetooth получать уведомления о записи трека diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/services/sensors/PolarMessageParserTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/services/sensors/PolarMessageParserTest.java index 0f6b09e69..26ce13bef 100644 --- a/MyTracksTest/src/com/google/android/apps/mytracks/services/sensors/PolarMessageParserTest.java +++ b/MyTracksTest/src/com/google/android/apps/mytracks/services/sensors/PolarMessageParserTest.java @@ -1,5 +1,7 @@ package com.google.android.apps.mytracks.services.sensors; +import java.util.Arrays; + import com.google.android.apps.mytracks.content.Sensor; import junit.framework.TestCase; @@ -7,26 +9,40 @@ import junit.framework.TestCase; public class PolarMessageParserTest extends TestCase { PolarMessageParser parser = new PolarMessageParser(); + // A complete and valid Polar HxM packet + // FE08F701D1001104FE08F702D1001104 + private final byte[] originalBuf = + {(byte) 0xFE, 0x08, (byte) 0xF7, 0x01, (byte) 0xD1, 0x00, 0x11, 0x04, (byte) 0xFE, 0x08, + (byte) 0xF7, 0x02, (byte) 0xD1, 0x00, 0x11, 0x04}; + private byte[] buf; + + public void setUp() { + buf = Arrays.copyOf(originalBuf, originalBuf.length); + } public void testIsValid() { - // A complete and valid Polar HxM packet - // FE08F701D1001104FE08F702D1001104 - byte[] buf = { 0xFE,0x08,0xF7,0x01,0xD1,0x00,0x11,0x04,0xFE,0x08,0xF7,0x02,0xD1,0x00,0x11,0x04 }; - - buf[0] = 0x03; // Invalidate header + assertTrue(parser.isValid(buf)); + } + + public void testIsValid_invalidHeader() { + // Invalidate header. + buf[0] = 0x03; assertFalse(parser.isValid(buf)); - - buf[0] = 0xFE; // Good header - buf[2] = 0x03; // Invalidate checkbyte + } + + public void testIsValid_invalidCheckbyte() { + // Invalidate checkbyte. + buf[2] = 0x03; assertFalse(parser.isValid(buf)); - - buf[2] = 0xF7; // Good checkbyte - buf[3] = 0x11; // Invalidate sequence + } + + public void testIsValid_invalidSequence() { + // Invalidate sequence. + buf[3] = 0x11; assertFalse(parser.isValid(buf)); } public void testParseBuffer() { - byte[] buf = { 0xFE,0x08,0xF7,0x01,0xD1,0x00,0x11,0x04,0xFE,0x08,0xF7,0x02,0xD1,0x00,0x11,0x04 }; buf[5] = 70; Sensor.SensorDataSet sds = parser.parseBuffer(buf); assertTrue(sds.hasHeartRate()); @@ -34,10 +50,21 @@ public class PolarMessageParserTest extends TestCase { assertEquals(70, sds.getHeartRate().getValue()); } - public void testFindNextAlignment() { - byte[] buf = { 0x0E,0x08,0xF7,0x01,0xD1,0x00,0x11,0x04,0x0E,0x08,0xF7,0x02,0xD1,0x00,0x11,0x04 }; + public void testFindNextAlignment_offset() { + // The first 4 bytes are garbage + buf = new byte[originalBuf.length + 4]; + buf[0] = 4; + buf[1] = 2; + buf[2] = 4; + buf[3] = 2; + + // Then the valid message. + System.arraycopy(originalBuf, 0, buf, 4, originalBuf.length); + assertEquals(4, parser.findNextAlignment(buf)); + } + + public void testFindNextAlignment_invalid() { + buf[0] = 0; assertEquals(-1, parser.findNextAlignment(buf)); - buf[8] = 0xFE; - assertEquals(8, parser.findNextAlignment(buf)); } }