public void testImageUrlAndBgColor() {
    final int count = 3;
    resources.setSuggestedSitesResource(generateSites(count));

    SuggestedSites suggestedSites = new SuggestedSites(context);

    // Suggested sites hasn't been loaded yet.
    for (int i = 0; i < count; i++) {
      String url = "url" + i;
      assertFalse(suggestedSites.contains(url));
      assertNull(suggestedSites.getImageUrlForUrl(url));
      assertNull(suggestedSites.getBackgroundColorForUrl(url));
    }

    Cursor c = suggestedSites.get(DEFAULT_LIMIT);
    c.moveToPosition(-1);

    // We should have cached results after the get() call.
    while (c.moveToNext()) {
      String url = c.getString(c.getColumnIndexOrThrow(BrowserContract.SuggestedSites.URL));
      assertTrue(suggestedSites.contains(url));
      assertEquals("imageUrl" + c.getPosition(), suggestedSites.getImageUrlForUrl(url));
      assertEquals("bgColor" + c.getPosition(), suggestedSites.getBackgroundColorForUrl(url));
    }
    c.close();

    // No valid values for unknown URLs.
    assertFalse(suggestedSites.contains("foo"));
    assertNull(suggestedSites.getImageUrlForUrl("foo"));
    assertNull(suggestedSites.getBackgroundColorForUrl("foo"));
  }