summaryrefslogtreecommitdiffstats
path: root/webkit/media/test_response_generator.h
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/media/test_response_generator.h')
-rw-r--r--webkit/media/test_response_generator.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/webkit/media/test_response_generator.h b/webkit/media/test_response_generator.h
new file mode 100644
index 0000000..fbdf5a8
--- /dev/null
+++ b/webkit/media/test_response_generator.h
@@ -0,0 +1,59 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef WEBKIT_MEDIA_TEST_RESPONSE_GENERATOR_H_
+#define WEBKIT_MEDIA_TEST_RESPONSE_GENERATOR_H_
+
+#include "base/basictypes.h"
+#include "googleurl/src/gurl.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebURLError.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebURLResponse.h"
+
+namespace webkit_media {
+
+// Generates WebURLErrors and WebURLResponses suitable for testing purposes.
+class TestResponseGenerator {
+ public:
+ enum Flags {
+ kNormal = 0,
+ kNoAcceptRanges = 1 << 0, // Don't include Accept-Ranges in 206 response.
+ kNoContentRange = 1 << 1, // Don't include Content-Range in 206 response.
+ kNoContentLength = 1 << 2, // Don't include Content-Length in 206 response.
+ };
+
+ // Build an HTTP response generator for the given URL. |content_length| is
+ // used to generate Content-Length and Content-Range headers.
+ TestResponseGenerator(const GURL& gurl, int64 content_length);
+
+ // Generates a WebURLError object.
+ WebKit::WebURLError GenerateError();
+
+ // Generates a regular HTTP 200 response.
+ WebKit::WebURLResponse Generate200();
+
+ // Generates a regular HTTP 206 response starting from |first_byte_offset|
+ // until the end of the resource.
+ WebKit::WebURLResponse Generate206(int64 first_byte_offset);
+
+ // Generates a custom HTTP 206 response starting from |first_byte_offset|
+ // until the end of the resource. You can tweak what gets included in the
+ // headers via |flags|.
+ WebKit::WebURLResponse Generate206(int64 first_byte_offset, Flags flags);
+
+ // Generates a regular HTTP 404 response.
+ WebKit::WebURLResponse Generate404();
+
+ const GURL& gurl() { return gurl_; }
+ int64 content_length() { return content_length_; }
+
+ private:
+ GURL gurl_;
+ int64 content_length_;
+
+ DISALLOW_COPY_AND_ASSIGN(TestResponseGenerator);
+};
+
+} // namespace webkit_media
+
+#endif // WEBKIT_MEDIA_TEST_RESPONSE_GENERATOR_H_