Root package tests pass.
diff --git a/collections_test.go b/collections_test.go
index b1fe6af..d215c33 100644
--- a/collections_test.go
+++ b/collections_test.go
@@ -1,26 +1,20 @@
 package gophercloud
 
 import (
-	"bytes"
-	"errors"
-	"io"
+	"fmt"
 	"net/http"
 	"reflect"
 	"testing"
 
 	"github.com/mitchellh/mapstructure"
+	"github.com/rackspace/gophercloud/testhelper"
 )
 
-type nopCloser struct {
-	io.Reader
-}
-
-func (nopCloser) Close() error { return nil }
-
-func responseWithBody(body string) (http.Response, error) {
-	return http.Response{
-		Body: nopCloser{bytes.NewReader([]byte(body))},
-	}, nil
+func createClient() *ServiceClient {
+	return &ServiceClient{
+		Provider: &ProviderClient{TokenID: "abc123"},
+		Endpoint: testhelper.Endpoint(),
+	}
 }
 
 // SinglePage sample and test cases.
@@ -39,14 +33,22 @@
 }
 
 func setupSinglePaged() Pager {
-	return NewSinglePager(func() (http.Response, error) {
-		return responseWithBody(`{ "ints": [1, 2, 3] }`)
+	testhelper.SetupHTTP()
+	client := createClient()
+
+	testhelper.Mux.HandleFunc("/only", func(w http.ResponseWriter, r *http.Request) {
+		fmt.Fprintf(w, `{ "ints": [1, 2, 3] }`)
 	})
+
+	return NewSinglePager(client, testhelper.Server.URL+"/only")
 }
 
 func TestEnumerateSinglePaged(t *testing.T) {
 	callCount := 0
-	err := setupSinglePaged().EachPage(func(page Page) (bool, error) {
+	pager := setupSinglePaged()
+	defer testhelper.TeardownHTTP()
+
+	err := pager.EachPage(func(page Page) (bool, error) {
 		callCount++
 
 		expected := []int{1, 2, 3}
@@ -84,23 +86,28 @@
 }
 
 func createLinked(t *testing.T) Pager {
-	return NewLinkedPager("page1", func(url string) (http.Response, error) {
-		switch url {
-		case "page1":
-			return responseWithBody(`{ "ints": [1, 2, 3], "links": { "next": "page2" } }`)
-		case "page2":
-			return responseWithBody(`{ "ints": [4, 5, 6], "links": { "next": "page3" } }`)
-		case "page3":
-			return responseWithBody(`{ "ints": [7, 8, 9], "links": { "next": null } }`)
-		default:
-			t.Fatalf("LinkedPager called with unexpected URL: %v", url)
-			return http.Response{}, errors.New("Wat")
-		}
+	testhelper.SetupHTTP()
+
+	testhelper.Mux.HandleFunc("/page1", func(w http.ResponseWriter, r *http.Request) {
+		fmt.Fprintf(w, `{ "ints": [1, 2, 3], "links": { "next": "%s/page2" } }`, testhelper.Server.URL)
 	})
+
+	testhelper.Mux.HandleFunc("/page2", func(w http.ResponseWriter, r *http.Request) {
+		fmt.Fprintf(w, `{ "ints": [4, 5, 6], "links": { "next": "%s/page3" } }`, testhelper.Server.URL)
+	})
+
+	testhelper.Mux.HandleFunc("/page3", func(w http.ResponseWriter, r *http.Request) {
+		fmt.Fprintf(w, `{ "ints": [7, 8, 9], "links": { "next": null } }`)
+	})
+
+	client := createClient()
+
+	return NewLinkedPager(client, testhelper.Server.URL+"/page1")
 }
 
 func TestEnumerateLinked(t *testing.T) {
 	pager := createLinked(t)
+	defer testhelper.TeardownHTTP()
 
 	callCount := 0
 	err := pager.EachPage(func(page Page) (bool, error) {