12e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko/* 22e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko * Copyright (C) 2015 The Android Open Source Project 32e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko * 42e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko * Licensed under the Apache License, Version 2.0 (the "License"); 52e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko * you may not use this file except in compliance with the License. 62e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko * You may obtain a copy of the License at 72e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko * 82e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko * http://www.apache.org/licenses/LICENSE-2.0 92e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko * 102e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko * Unless required by applicable law or agreed to in writing, software 112e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko * distributed under the License is distributed on an "AS IS" BASIS, 122e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko * See the License for the specific language governing permissions and 142e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko * limitations under the License. 152e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko */ 162e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko 172e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalkopackage com.android.tv.data; 182e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko 196ebde20b03db4c0d57f67acaac11832b610b966bNick Chalkoimport static android.support.test.InstrumentationRegistry.getTargetContext; 206ebde20b03db4c0d57f67acaac11832b610b966bNick Chalkoimport static org.junit.Assert.assertEquals; 216ebde20b03db4c0d57f67acaac11832b610b966bNick Chalkoimport static org.junit.Assert.assertNotNull; 226ebde20b03db4c0d57f67acaac11832b610b966bNick Chalkoimport static org.junit.Assert.assertNull; 236ebde20b03db4c0d57f67acaac11832b610b966bNick Chalkoimport static org.junit.Assert.assertTrue; 246ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko 252e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalkoimport android.media.tv.TvContract.Programs.Genres; 262e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalkoimport android.os.Build; 2765fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalkoimport android.support.test.filters.SmallTest; 286ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko 296ebde20b03db4c0d57f67acaac11832b610b966bNick Chalkoimport org.junit.Test; 302e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko 312e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko/** 322e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko * Tests for {@link Channel}. 332e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko */ 342e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko@SmallTest 356ebde20b03db4c0d57f67acaac11832b610b966bNick Chalkopublic class GenreItemTest { 362e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko private static final String INVALID_GENRE = "INVALID GENRE"; 372e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko 386ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko @Test 392e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko public void testGetLabels() { 402e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko // Checks if no exception is thrown. 416ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko GenreItems.getLabels(getTargetContext()); 422e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko } 432e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko 446ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko @Test 452e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko public void testGetCanonicalGenre() { 462e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko int count = GenreItems.getGenreCount(); 472e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertNull(GenreItems.getCanonicalGenre(GenreItems.ID_ALL_CHANNELS)); 482e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko for (int i = 1; i < count; ++i) { 492e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertNotNull(GenreItems.getCanonicalGenre(i)); 502e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko } 512e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko } 522e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko 536ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko @Test 542e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko public void testGetId_base() { 552e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko int count = GenreItems.getGenreCount(); 562e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertEquals(GenreItems.ID_ALL_CHANNELS, GenreItems.getId(null)); 572e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertEquals(GenreItems.ID_ALL_CHANNELS, GenreItems.getId(INVALID_GENRE)); 582e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertInRange(GenreItems.getId(Genres.FAMILY_KIDS), 1, count - 1); 592e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertInRange(GenreItems.getId(Genres.SPORTS), 1, count - 1); 602e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertInRange(GenreItems.getId(Genres.SHOPPING), 1, count - 1); 612e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertInRange(GenreItems.getId(Genres.MOVIES), 1, count - 1); 622e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertInRange(GenreItems.getId(Genres.COMEDY), 1, count - 1); 632e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertInRange(GenreItems.getId(Genres.TRAVEL), 1, count - 1); 642e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertInRange(GenreItems.getId(Genres.DRAMA), 1, count - 1); 652e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertInRange(GenreItems.getId(Genres.EDUCATION), 1, count - 1); 662e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertInRange(GenreItems.getId(Genres.ANIMAL_WILDLIFE), 1, count - 1); 672e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertInRange(GenreItems.getId(Genres.NEWS), 1, count - 1); 682e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertInRange(GenreItems.getId(Genres.GAMING), 1, count - 1); 692e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko } 702e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko 716ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko @Test 722e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko public void testGetId_lmp_mr1() { 732e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1) { 742e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertEquals(GenreItems.ID_ALL_CHANNELS, GenreItems.getId(Genres.ARTS)); 752e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertEquals(GenreItems.ID_ALL_CHANNELS, GenreItems.getId(Genres.ENTERTAINMENT)); 762e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertEquals(GenreItems.ID_ALL_CHANNELS, GenreItems.getId(Genres.LIFE_STYLE)); 772e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertEquals(GenreItems.ID_ALL_CHANNELS, GenreItems.getId(Genres.MUSIC)); 782e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertEquals(GenreItems.ID_ALL_CHANNELS, GenreItems.getId(Genres.PREMIER)); 792e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertEquals(GenreItems.ID_ALL_CHANNELS, GenreItems.getId(Genres.TECH_SCIENCE)); 802e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko } else { 812e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko int count = GenreItems.getGenreCount(); 822e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertInRange(GenreItems.getId(Genres.ARTS), 1, count - 1); 832e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertInRange(GenreItems.getId(Genres.ENTERTAINMENT), 1, count - 1); 842e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertInRange(GenreItems.getId(Genres.LIFE_STYLE), 1, count - 1); 852e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertInRange(GenreItems.getId(Genres.MUSIC), 1, count - 1); 862e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertInRange(GenreItems.getId(Genres.PREMIER), 1, count - 1); 872e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertInRange(GenreItems.getId(Genres.TECH_SCIENCE), 1, count - 1); 882e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko } 892e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko } 902e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko 912e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko private void assertInRange(int value, int lower, int upper) { 922e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko assertTrue(value >= lower && value <= upper); 932e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko } 942e1279b8bbe0603fb4399b25b73121bed5953c46Nick Chalko} 95