@Test
  public void queryArtistTest() {
    Uri uri = MediaContract.Artists.buildArtistUri(hostInfo.getId(), TestValues.Artist.artistId);

    Cursor cursor = contentResolver.query(uri, TestValues.Artist.PROJECTION, null, null, null);

    assertNotNull(cursor);
    assertEquals("cursor size ", 1, cursor.getCount());
    assertTrue(cursor.moveToFirst());
    TestValues.Artist.test(cursor);
  }
  @Test
  public void queryAllAlbumsTest() {
    Uri uri = MediaContract.Albums.buildAlbumsListUri(hostInfo.getId());

    Cursor cursor = contentResolver.query(uri, TestValues.Album.PROJECTION, null, null, null);

    assertNotNull(cursor);
    assertEquals("cursor size ", 232, cursor.getCount());
    int columnIndex = cursor.getColumnIndex(MediaContract.AlbumsColumns.ALBUMID);
    TestUtils.testCursorContainsRange(cursor, columnIndex, 1, 75);
    TestUtils.testCursorContainsRange(cursor, columnIndex, 77, 82);
    TestUtils.testCursorContainsRange(cursor, columnIndex, 84, 234);
  }
  @Test
  public void queryAllGenresTest() {
    Uri uri = MediaContract.AudioGenres.buildAudioGenresListUri(hostInfo.getId());

    Cursor cursor =
        contentResolver.query(
            uri, new String[] {MediaContract.AudioGenresColumns.GENREID}, null, null, null);

    assertNotNull(cursor);
    assertEquals("cursor size ", 39, cursor.getCount());
    TestUtils.testCursorContainsRange(
        cursor, cursor.getColumnIndex(MediaContract.AudioGenresColumns.GENREID), 1, 39);
  }
  @Test
  public void queryAlbumSongsTest() {
    Uri uri =
        MediaContract.Songs.buildAlbumSongsListUri(hostInfo.getId(), TestValues.Album.albumId);

    Cursor cursor =
        contentResolver.query(uri, new String[] {MediaContract.Songs.SONGID}, null, null, null);

    assertNotNull(cursor);
    assertEquals("cursor size ", 17, cursor.getCount());
    TestUtils.testCursorContainsRange(
        cursor, cursor.getColumnIndex(MediaContract.SongsColumns.SONGID), 96, 112);
  }
  @Test
  public void queryAllArtistsTest() {
    Uri uri = MediaContract.Artists.buildArtistsListUri(hostInfo.getId());

    Cursor cursor = contentResolver.query(uri, TestValues.Artist.PROJECTION, null, null, null);

    assertNotNull(cursor);
    assertEquals("cursor size ", 227, cursor.getCount());
    TestUtils.testCursorContainsRange(
        cursor, cursor.getColumnIndex(MediaContract.ArtistsColumns.ARTISTID), 1, 94);
    // Artist id 95 should be missing
    TestUtils.testCursorContainsRange(
        cursor, cursor.getColumnIndex(MediaContract.ArtistsColumns.ARTISTID), 96, 228);
  }
  @Test
  public void querySecondArtistSongWithMultipleArtistsTest() {
    Uri uri =
        MediaContract.Songs.buildArtistSongsListUri(
            hostInfo.getId(), TestValues.SongWithMultipleArtists.secondArtistId);

    Cursor cursor =
        contentResolver.query(uri, TestValues.SongWithMultipleArtists.PROJECTION, null, null, null);

    assertNotNull(cursor);
    assertEquals("cursor size ", 1, cursor.getCount());
    assertTrue(cursor.moveToFirst());
    TestValues.SongWithMultipleArtists.test(cursor);
  }
  @Test
  public void queryAlbumWithMultipleArtistsTest() {
    Uri uri =
        MediaContract.Albums.buildAlbumUri(
            hostInfo.getId(), TestValues.AlbumWithMultipleArtists.albumId);

    Cursor cursor =
        contentResolver.query(
            uri, TestValues.AlbumWithMultipleArtists.PROJECTION, null, null, null);

    assertNotNull(cursor);
    assertEquals("cursor size ", 1, cursor.getCount());
    assertTrue(cursor.moveToFirst());
    LogUtils.LOGD("MediaProviderMusicTest", Utils.cursorToString(cursor));
    TestValues.AlbumWithMultipleArtists.test(cursor);
  }
  @Test
  public void querySongWithArtistWithoutAlbumTest() {
    Uri uri =
        MediaContract.Songs.buildArtistSongsListUri(
            hostInfo.getId(), TestValues.SongWithArtistWithoutAlbum.artistId);

    Cursor cursor =
        contentResolver.query(
            uri, TestValues.SongWithArtistWithoutAlbum.PROJECTION, null, null, null);

    assertNotNull(cursor);
    assertEquals("cursor size ", 1, cursor.getCount());
    assertTrue(cursor.moveToFirst());
    Utils.cursorToString(cursor);
    TestValues.SongWithArtistWithoutAlbum.test(cursor);
  }
  @Test
  public void queryAlbumsForGenreTest() {
    int genreId = 13;
    Uri uri = MediaContract.AlbumGenres.buildAlbumsForGenreListUri(hostInfo.getId(), genreId);

    Cursor cursor = contentResolver.query(uri, TestValues.Album.PROJECTION, null, null, null);

    assertNotNull(cursor);
    assertEquals("cursor size ", 31, cursor.getCount());
    TestUtils.testCursorContainsNumbers(
        cursor, cursor.getColumnIndex(MediaContract.Albums.ALBUMID), 28, 43, 47, 66, 100);
    TestUtils.testCursorContainsRange(
        cursor, cursor.getColumnIndex(MediaContract.Albums.ALBUMID), 50, 55);
    TestUtils.testCursorContainsRange(
        cursor, cursor.getColumnIndex(MediaContract.Albums.ALBUMID), 201, 220);
  }
  @Test
  public void queryArtistSongsTest() {
    Uri uri =
        MediaContract.Songs.buildArtistSongsListUri(
            hostInfo.getId(), TestValues.ArtistSong.artistId);

    Cursor cursor = contentResolver.query(uri, TestValues.ArtistSong.PROJECTION, null, null, null);

    assertNotNull(cursor);
    assertEquals("cursor size ", 17, cursor.getCount());
    TestUtils.testCursorContainsRange(
        cursor, cursor.getColumnIndex(MediaContract.SongsColumns.SONGID), 96, 112);
    assertTrue(
        Utils.moveCursorTo(
            cursor,
            cursor.getColumnIndex(MediaContract.Songs.SONGID),
            TestValues.ArtistSong.songId));
  }
  @Test
  public void queryAllSongsTest() {
    Uri uri = MediaContract.Songs.buildSongsListUri(hostInfo.getId());

    Cursor cursor = contentResolver.query(uri, TestValues.ArtistSong.PROJECTION, null, null, null);

    assertNotNull(cursor);
    assertEquals("cursor size ", 1804, cursor.getCount());
    TestUtils.testCursorContainsRange(
        cursor, cursor.getColumnIndex(MediaContract.Songs.SONGID), 1, 1804);

    // Test if list also contains a song WITH an album AND an artist
    assertTrue(
        Utils.moveCursorTo(
            cursor,
            cursor.getColumnIndex(MediaContract.Songs.SONGID),
            TestValues.SongWithAlbumAndArtist.songId));
    TestValues.SongWithAlbumAndArtist.test(cursor);

    // Test if list also contains a song WITHOUT an album but WITH an artist
    assertTrue(
        Utils.moveCursorTo(
            cursor,
            cursor.getColumnIndex(MediaContract.Songs.SONGID),
            TestValues.SongWithArtistWithoutAlbum.songId));
    TestValues.SongWithArtistWithoutAlbum.test(cursor);

    // Test if list also contains a song WITH an album but WITHOUT an artist
    assertTrue(
        Utils.moveCursorTo(
            cursor,
            cursor.getColumnIndex(MediaContract.Songs.SONGID),
            TestValues.SongWithAlbumWithoutArtist.songId));
    TestValues.SongWithAlbumWithoutArtist.test(cursor);

    // Test if list contains a song WITH MULTIPLE artists
    assertTrue(
        Utils.moveCursorTo(
            cursor,
            cursor.getColumnIndex(MediaContract.Songs.SONGID),
            TestValues.SongWithMultipleArtists.songId));
    TestValues.SongWithMultipleArtists.test(cursor);
  }
Exemple #12
0
  @Override
  protected CursorLoader createCursorLoader() {
    HostInfo hostInfo = HostManager.getInstance(getActivity()).getHostInfo();
    Uri uri = MediaContract.Artists.buildArtistsListUri(hostInfo != null ? hostInfo.getId() : -1);

    String selection = null;
    String selectionArgs[] = null;
    String searchFilter = getSearchFilter();
    if (!TextUtils.isEmpty(searchFilter)) {
      selection = MediaContract.ArtistsColumns.ARTIST + " LIKE ?";
      selectionArgs = new String[] {"%" + searchFilter + "%"};
    }

    return new CursorLoader(
        getActivity(),
        uri,
        ArtistListQuery.PROJECTION,
        selection,
        selectionArgs,
        ArtistListQuery.SORT);
  }