add FakeHttpLayer.getSentHttpRequestInfos()
add ContentResolver.query()
diff --git a/src/main/java/com/xtremelabs/robolectric/Robolectric.java b/src/main/java/com/xtremelabs/robolectric/Robolectric.java
index 216300d..fa3daba 100644
--- a/src/main/java/com/xtremelabs/robolectric/Robolectric.java
+++ b/src/main/java/com/xtremelabs/robolectric/Robolectric.java
@@ -4,6 +4,7 @@
 import android.appwidget.AppWidgetManager;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
+import android.content.ContentResolver;
 import android.content.ContentValues;
 import android.content.Context;
 import android.content.ContextWrapper;
@@ -243,6 +244,10 @@
         return (ShadowNetworkInfo) shadowOf_(instance);
     }
 
+    public static ShadowContentResolver shadowOf(ContentResolver instance) {
+        return (ShadowContentResolver) shadowOf_(instance);
+    }
+
     public static ShadowConnectivityManager shadowOf(ConnectivityManager instance) {
         return (ShadowConnectivityManager) shadowOf_(instance);
     }
diff --git a/src/main/java/com/xtremelabs/robolectric/shadows/ShadowContentResolver.java b/src/main/java/com/xtremelabs/robolectric/shadows/ShadowContentResolver.java
index 62f9933..04b6e78 100644
--- a/src/main/java/com/xtremelabs/robolectric/shadows/ShadowContentResolver.java
+++ b/src/main/java/com/xtremelabs/robolectric/shadows/ShadowContentResolver.java
@@ -2,6 +2,7 @@
 
 import android.content.ContentResolver;
 import android.content.ContentValues;
+import android.database.Cursor;
 import android.net.Uri;
 import com.xtremelabs.robolectric.internal.Implementation;
 import com.xtremelabs.robolectric.internal.Implements;
@@ -12,6 +13,8 @@
 @SuppressWarnings({"UnusedDeclaration"})
 @Implements(ContentResolver.class)
 public class ShadowContentResolver {
+    private Cursor cursor;
+
     @Implementation
     public final InputStream openInputStream(final Uri uri) {
         return new InputStream() {
@@ -29,4 +32,15 @@
     public final Uri insert(Uri url, ContentValues values) {
         return Uri.parse("content://foobar");
     }
+
+    @Implementation
+    public final Cursor query(Uri uri, String[] projection,
+            String selection, String[] selectionArgs, String sortOrder) {
+        return cursor;
+    }
+
+    public void setCursor(Cursor cursor) {
+        this.cursor = cursor;
+    }
+
 }
diff --git a/src/main/java/com/xtremelabs/robolectric/tester/org/apache/http/FakeHttpLayer.java b/src/main/java/com/xtremelabs/robolectric/tester/org/apache/http/FakeHttpLayer.java
index 7b48ae7..469aef0 100644
--- a/src/main/java/com/xtremelabs/robolectric/tester/org/apache/http/FakeHttpLayer.java
+++ b/src/main/java/com/xtremelabs/robolectric/tester/org/apache/http/FakeHttpLayer.java
@@ -109,6 +109,11 @@
     public HttpRequestInfo getSentHttpRequestInfo(int index) {
         return httpRequestInfos.get(index);
     }
+
+    public List<HttpRequestInfo> getSentHttpRequestInfos() {
+        return new ArrayList<HttpRequestInfo>(httpRequestInfos);
+    }
+
     public void clearHttpResponseRules() {
         httpResponseRules.clear();
     }