- add response tests
[m6w6/ext-http] / http_response_object.c
index 7e8c77c92f5d8dcc9382d4cfc86388dca7ca6965..5303d2d0ed76bd1c934b2428dad2ad8a5d3dc652 100644 (file)
@@ -155,7 +155,6 @@ zend_function_entry http_response_object_fe[] = {
 
        {NULL, NULL, NULL}
 };
-static zend_object_handlers http_response_object_handlers;
 
 void _http_response_object_init(INIT_FUNC_ARGS)
 {
@@ -188,7 +187,7 @@ static inline void _http_response_object_declare_default_properties(TSRMLS_D)
 
 /* ### USERLAND ### */
 
-/* {{{ proto bool HttpResponse::setCache(bool cache)
+/* {{{ proto static bool HttpResponse::setCache(bool cache)
  *
  * Whether it sould be attempted to cache the entitity.
  * This will result in necessary caching headers and checks of clients
@@ -211,7 +210,7 @@ PHP_METHOD(HttpResponse, setCache)
 }
 /* }}} */
 
-/* {{{ proto bool HttpResponse::getCache()
+/* {{{ proto static bool HttpResponse::getCache()
  *
  * Get current caching setting.
  */
@@ -225,7 +224,7 @@ PHP_METHOD(HttpResponse, getCache)
 }
 /* }}}*/
 
-/* {{{ proto bool HttpResponse::setGzip(bool gzip)
+/* {{{ proto static bool HttpResponse::setGzip(bool gzip)
  *
  * Enable on-thy-fly gzipping of the sent entity. NOT IMPLEMENTED YET.
  */
@@ -242,7 +241,7 @@ PHP_METHOD(HttpResponse, setGzip)
 }
 /* }}} */
 
-/* {{{ proto bool HttpResponse::getGzip()
+/* {{{ proto static bool HttpResponse::getGzip()
  *
  * Get current gzipping setting.
  */
@@ -256,7 +255,7 @@ PHP_METHOD(HttpResponse, getGzip)
 }
 /* }}} */
 
-/* {{{ proto bool HttpResponse::setCacheControl(string control[, long max_age = 0])
+/* {{{ proto static bool HttpResponse::setCacheControl(string control[, long max_age = 0])
  *
  * Set a custom cache-control header, usually being "private" or "public";
  * The max_age parameter controls how long the cache entry is valid on the client side.
@@ -269,7 +268,7 @@ PHP_METHOD(HttpResponse, setCacheControl)
 
 #define HTTP_CACHECONTROL_TEMPLATE "%s, must-revalidate, max_age=%ld"
 
-       if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|b", &ccontrol, &cc_len, &max_age)) {
+       if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", &ccontrol, &cc_len, &max_age)) {
                RETURN_FALSE;
        }
 
@@ -285,7 +284,7 @@ PHP_METHOD(HttpResponse, setCacheControl)
 }
 /* }}} */
 
-/* {{{ proto string HttpResponse::getCacheControl()
+/* {{{ proto static string HttpResponse::getCacheControl()
  *
  * Get current Cache-Control header setting.
  */
@@ -300,7 +299,7 @@ PHP_METHOD(HttpResponse, getCacheControl)
 }
 /* }}} */
 
-/* {{{ proto bool HttpResponse::setContentType(string content_type)
+/* {{{ proto static bool HttpResponse::setContentType(string content_type)
  *
  * Set the content-type of the sent entity.
  */
@@ -324,7 +323,7 @@ PHP_METHOD(HttpResponse, setContentType)
 }
 /* }}} */
 
-/* {{{ proto string HttpResponse::getContentType()
+/* {{{ proto static string HttpResponse::getContentType()
  *
  * Get current Content-Type header setting.
  */
@@ -339,7 +338,7 @@ PHP_METHOD(HttpResponse, getContentType)
 }
 /* }}} */
 
-/* {{{ proto bool HttpResponse::setContentDisposition(string filename[, bool inline = false])
+/* {{{ proto static bool HttpResponse::setContentDisposition(string filename[, bool inline = false])
  *
  * Set the Content-Disposition of the sent entity.  This setting aims to suggest
  * the receiveing user agent how to handle the sent entity;  usually the client
@@ -363,7 +362,7 @@ PHP_METHOD(HttpResponse, setContentDisposition)
 }
 /* }}} */
 
-/* {{{ proto string HttpResponse::getContentDisposition()
+/* {{{ proto static string HttpResponse::getContentDisposition()
  *
  * Get current Content-Disposition setting.
  */
@@ -378,7 +377,7 @@ PHP_METHOD(HttpResponse, getContentDisposition)
 }
 /* }}} */
 
-/* {{{ proto bool HttpResponse::setETag(string etag)
+/* {{{ proto static bool HttpResponse::setETag(string etag)
  *
  * Set a custom ETag.  Use this only if you know what you're doing.
  */
@@ -397,7 +396,7 @@ PHP_METHOD(HttpResponse, setETag)
 }
 /* }}} */
 
-/* {{{ proto string HttpResponse::getETag()
+/* {{{ proto static string HttpResponse::getETag()
  *
  * Get the previously set custom ETag.
  */
@@ -412,7 +411,7 @@ PHP_METHOD(HttpResponse, getETag)
 }
 /* }}} */
 
-/* {{{ proto void HttpResponse::setThrottleDelay(double seconds)
+/* {{{ proto static void HttpResponse::setThrottleDelay(double seconds)
  *
  */
 PHP_METHOD(HttpResponse, setThrottleDelay)
@@ -425,7 +424,7 @@ PHP_METHOD(HttpResponse, setThrottleDelay)
 }
 /* }}} */
 
-/* {{{ proto double HttpResponse::getThrottleDelay()
+/* {{{ proto static double HttpResponse::getThrottleDelay()
  *
  */
 PHP_METHOD(HttpResponse, getThrottleDelay)
@@ -438,7 +437,7 @@ PHP_METHOD(HttpResponse, getThrottleDelay)
 }
 /* }}} */
 
-/* {{{ proto void HttpResponse::setBufferSize(long bytes)
+/* {{{ proto static void HttpResponse::setBufferSize(long bytes)
  *
  */
 PHP_METHOD(HttpResponse, setBufferSize)
@@ -451,7 +450,7 @@ PHP_METHOD(HttpResponse, setBufferSize)
 }
 /* }}} */
 
-/* {{{ proto long HttpResponse::getBufferSize()
+/* {{{ proto static long HttpResponse::getBufferSize()
  *
  */
 PHP_METHOD(HttpResponse, getBufferSize)
@@ -464,7 +463,7 @@ PHP_METHOD(HttpResponse, getBufferSize)
 }
 /* }}} */
 
-/* {{{ proto bool HttpResponse::setData(string data)
+/* {{{ proto static bool HttpResponse::setData(string data)
  *
  * Set the data to be sent.
  */
@@ -489,7 +488,7 @@ PHP_METHOD(HttpResponse, setData)
 }
 /* }}} */
 
-/* {{{ proto string HttpResponse::getData()
+/* {{{ proto static string HttpResponse::getData()
  *
  * Get the previously set data to be sent.
  */
@@ -504,7 +503,7 @@ PHP_METHOD(HttpResponse, getData)
 }
 /* }}} */
 
-/* {{{ proto bool HttpResponse::setStream(resource stream)
+/* {{{ proto static bool HttpResponse::setStream(resource stream)
  *
  * Set the resource to be sent.
  */
@@ -531,7 +530,7 @@ PHP_METHOD(HttpResponse, setStream)
 }
 /* }}} */
 
-/* {{{ proto resource HttpResponse::getStream()
+/* {{{ proto static resource HttpResponse::getStream()
  *
  * Get the previously set resource to be sent.
  */
@@ -545,7 +544,7 @@ PHP_METHOD(HttpResponse, getStream)
 }
 /* }}} */
 
-/* {{{ proto bool HttpResponse::setFile(string file)
+/* {{{ proto static bool HttpResponse::setFile(string file)
  *
  * Set the file to be sent.
  */
@@ -570,7 +569,7 @@ PHP_METHOD(HttpResponse, setFile)
 }
 /* }}} */
 
-/* {{{ proto string HttpResponse::getFile()
+/* {{{ proto static string HttpResponse::getFile()
  *
  * Get the previously set file to be sent.
  */
@@ -585,7 +584,7 @@ PHP_METHOD(HttpResponse, getFile)
 }
 /* }}} */
 
-/* {{{ proto bool HttpResponse::send([bool clean_ob = true])
+/* {{{ proto static bool HttpResponse::send([bool clean_ob = true])
  *
  * Finally send the entity.
  *
@@ -649,7 +648,7 @@ PHP_METHOD(HttpResponse, send)
 
        /* gzip */
        if (Z_LVAL_P(GET_STATIC_PROP(gzip))) {
-               php_start_ob_buffer_named("ob_gzhandler", 0, 0 TSRMLS_CC);
+               php_start_ob_buffer_named("ob_gzhandler", 0, 1 TSRMLS_CC);
        } else {
                php_start_ob_buffer(NULL, 0, 0 TSRMLS_CC);
        }
@@ -731,9 +730,18 @@ PHP_METHOD(HttpResponse, send)
 }
 /* }}} */
 
-/* {{{ proto void HttpResponse::capture()
+/* {{{ proto static void HttpResponse::capture()
  *
  * Capture script output.
+ *
+ * Example:
+ * <pre>
+ * <?php
+ * HttpResponse::setCache(true);
+ * HttpResponse::capture();
+ * // script follows
+ * ?>
+ * </pre>
  */
 PHP_METHOD(HttpResponse, capture)
 {