diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/ChartsExtendedEncoder.java b/MyTracks/src/com/google/android/apps/mytracks/util/ChartsExtendedEncoder.java index 0785b5a66..36a4372a5 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/ChartsExtendedEncoder.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/ChartsExtendedEncoder.java @@ -32,12 +32,12 @@ public class ChartsExtendedEncoder { public static String getEncodedValue(int scaled) { int index1 = scaled / CHARTSERVER_EXTENDED_SINGLE_CHARACTER_VALUES; - int index2 = scaled % CHARTSERVER_EXTENDED_SINGLE_CHARACTER_VALUES; - - if (index1 >= CHARTSERVER_EXTENDED_SINGLE_CHARACTER_VALUES) { + if (index1 < 0 || index1 >= CHARTSERVER_EXTENDED_SINGLE_CHARACTER_VALUES) { return MISSING_POINT_EXTENDED_ENCODING; } - if (index2 >= CHARTSERVER_EXTENDED_SINGLE_CHARACTER_VALUES) { + + int index2 = scaled % CHARTSERVER_EXTENDED_SINGLE_CHARACTER_VALUES; + if (index2 < 0 || index2 >= CHARTSERVER_EXTENDED_SINGLE_CHARACTER_VALUES) { return MISSING_POINT_EXTENDED_ENCODING; } diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/util/ChartURLGeneratorTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/util/ChartURLGeneratorTest.java index 5fba76b2f..d54524d8a 100644 --- a/MyTracksTest/src/com/google/android/apps/mytracks/util/ChartURLGeneratorTest.java +++ b/MyTracksTest/src/com/google/android/apps/mytracks/util/ChartURLGeneratorTest.java @@ -1,14 +1,27 @@ -// Copyright 2009 Google Inc. All Rights Reserved. - +/* + * Copyright 2009 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ package com.google.android.apps.mytracks.util; import com.google.android.apps.mytracks.content.Track; import com.google.android.apps.mytracks.stats.TripStatistics; -import junit.framework.TestCase; - import java.util.Vector; +import junit.framework.TestCase; + /** * Tests for the Chart URL generator. * diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/util/ChartsExtendedEncoderTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/util/ChartsExtendedEncoderTest.java new file mode 100644 index 000000000..96ea5c8b1 --- /dev/null +++ b/MyTracksTest/src/com/google/android/apps/mytracks/util/ChartsExtendedEncoderTest.java @@ -0,0 +1,47 @@ +/* + * Copyright 2010 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.google.android.apps.mytracks.util; + +import junit.framework.TestCase; + +/** + * A unit test for {@link ChartsExtendedEncoder}. + * + * @author Bartlomiej Niechwiej + */ +public class ChartsExtendedEncoderTest extends TestCase { + + public void testGetEncodedValue_validArguments() { + // Valid arguments. + assertEquals("AK", ChartsExtendedEncoder.getEncodedValue(10)); + assertEquals("JO", ChartsExtendedEncoder.getEncodedValue(590)); + assertEquals("AA", ChartsExtendedEncoder.getEncodedValue(0)); + // 64^2 = 4096. + assertEquals("..", ChartsExtendedEncoder.getEncodedValue(4095)); + } + + public void testGetEncodedValue_invalidArguments() { + // Invalid arguments. + assertEquals("__", ChartsExtendedEncoder.getEncodedValue(4096)); + assertEquals("__", ChartsExtendedEncoder.getEncodedValue(1234564096)); + assertEquals("__", ChartsExtendedEncoder.getEncodedValue(-10)); + assertEquals("__", ChartsExtendedEncoder.getEncodedValue(-12324435)); + } + + public void testGetSeparator() { + assertEquals(",", ChartsExtendedEncoder.getSeparator()); + } +}