Explorar o código

implement SimpleRequest

xu ding %!s(int64=9) %!d(string=hai) anos
pai
achega
88f833a5f4

+ 23 - 3
src/Network/SimpleRequest.php

@@ -11,7 +11,15 @@ class SimpleRequest implements Request
      */
     public function is($type)
     {
-        $type = strtolower($type);
+        switch (strtolower($type)) {
+            case 'post':
+                return isset($_POST)&&!empty($_POST);
+                break;
+            case 'get':
+                return isset($_GET)&&!empty($_GET);
+                break;
+        }
+        return false;
     }
 
     /**
@@ -20,7 +28,15 @@ class SimpleRequest implements Request
      */
     public function data($requestType)
     {
-        // TODO: Implement data() method.
+        switch (strtolower($requestType)) {
+            case 'post':
+                return isset($_POST)?$_POST:array();
+                break;
+            case 'get':
+                return isset($_GET)?$_GET:array();
+                break;
+        }
+        return array();
     }
 
     /**
@@ -28,7 +44,11 @@ class SimpleRequest implements Request
      */
     public function file()
     {
-        // TODO: Implement file() method.
+        if (!isset($_FILES) || empty($_FILES)) {
+            return array();
+        }
+        $files = array_values($_FILES);
+        return array_shift($files);
     }
 
 }

+ 90 - 0
test/src/Network/SimpleRequestTest.php

@@ -0,0 +1,90 @@
+<?php
+namespace Dilab\Network;
+
+use Dilab\Network\Request;
+
+/**
+ * Class SimpleRequestTest
+ * @package Dilab\Network
+ * @property $request Request
+ */
+class SimpleRequestTest extends \PHPUnit_Framework_TestCase
+{
+    protected function setUp()
+    {
+        $this->request = new SimpleRequest();
+    }
+
+    public function tearDown()
+    {
+        unset($this->request);
+        parent::tearDown();
+    }
+
+
+   public function testIsPost()
+   {
+       $_POST = array(
+           'resumableChunkNumber'=> 3,
+           'resumableTotalChunks'=> 600,
+           'resumableChunkSize'=>  200,
+           'resumableIdentifier'=> 'identifier',
+           'resumableFilename'=> 'mock.png',
+           'resumableRelativePath'=> 'upload',
+       );
+       $this->assertTrue($this->request->is('post'));
+       unset($_POST);
+   }
+
+   public function testIsGet()
+   {
+       $_GET = array(
+           'resumableChunkNumber'=> 3,
+           'resumableTotalChunks'=> 600,
+           'resumableChunkSize'=>  200,
+           'resumableIdentifier'=> 'identifier',
+           'resumableFilename'=> 'mock.png',
+           'resumableRelativePath'=> 'upload',
+       );
+       $this->assertTrue($this->request->is('get'));
+       unset($_GET);
+   }
+
+   public function testData()
+   {
+       $data = array(
+           'resumableChunkNumber'=> 3,
+           'resumableTotalChunks'=> 600,
+           'resumableChunkSize'=>  200,
+           'resumableIdentifier'=> 'identifier',
+           'resumableFilename'=> 'mock.png',
+           'resumableRelativePath'=> 'upload',
+       );
+
+       $_GET = $data;
+       $_POST = $data;
+
+       $this->assertEquals($data,$this->request->data('get'));
+       $this->assertEquals($data,$this->request->data('post'));
+
+       unset($_GET);
+       unset($_POST);
+   }
+
+   public function testFile()
+   {
+       $file = array(
+           'name'=> 'mock.png',
+           'type'=> 'application/octet-stream',
+           'tmp_name'=>  'test/files/mock.png.part3',
+           'error'=> 0,
+           'size'=> 1048576,
+       );
+
+       $_FILES['file'] = $file;
+       $this->assertEquals($file,$this->request->file());
+       unset($_FILES);
+   }
+
+
+}

+ 30 - 0
test/src/Network/SimpleResponseTest.php

@@ -0,0 +1,30 @@
+<?php
+namespace Dilab\Network;
+
+use Dilab\Network\Response;
+
+/**
+ * Class SimpleResponseTest
+ * @package Dilab\Network
+ * @property $response Response
+ */
+class SimpleResponseTest extends \PHPUnit_Framework_TestCase
+{
+    protected function setUp()
+    {
+        $this->response = new SimpleResponse();
+    }
+
+    public function tearDown()
+    {
+        unset($this->response);
+        parent::tearDown();
+    }
+
+
+    public function testHeader()
+    {
+
+    }
+
+}