    @Test
    @Override
    public final void testContains() throws Exception {


        MockWebServer server = new MockWebServer();
        server.enqueue(new MockResponse().setResponseCode(404)); // remote doesn't contain TEST_NAME_1 (before save)
        server.enqueue(new MockResponse()); // remote contains TEST_NAME_1 (after save)
        server.enqueue(new MockResponse().setResponseCode(404)); // remote doesn't contain TEST_NAME_2_INVALID
        server.enqueue(new MockResponse()); // remote contains TEST_NAME_3
        server.enqueue(new MockResponse().setResponseCode(404)); // remote doesn't contain TEST_NAME_3_INVALID
        server.start();

        baseUrl = server.url("/");

        super.testContains();

        CachedStorage storage = createStorage();

        OutputStream localStream = storage.getLocal().openOutputStream(TestUtils.TEST_NAME_2);
        localStream.write(TestUtils.TEST_DATA_2);
        localStream.flush();
        localStream.close();

        assertTrue(storage.contains(TestUtils.TEST_NAME_2));
        assertFalse(storage.contains(TestUtils.TEST_NAME_2_INVALID));

        OutputStream remoteStream = storage.getRemote().openOutputStream(TestUtils.TEST_NAME_3);
        remoteStream.write(TestUtils.TEST_DATA_3);
        remoteStream.flush();
        remoteStream.close();

        assertTrue(storage.contains(TestUtils.TEST_NAME_3));
        assertFalse(storage.contains(TestUtils.TEST_NAME_3_INVALID));

        server.shutdown();

    }