From df9e3bbf1943b77ac7ab91bd3fc59643fe458044 Mon Sep 17 00:00:00 2001
From: Jaeger <JaegerCode@gmail.com>
Date: Wed, 12 Dec 2018 15:29:31 +0800
Subject: [PATCH] test htpp cache

---
 tests/Dom/RulesTest.php     | 43 +++++++++++++++++++++++++++++++++++++
 tests/Feature/HttpTest.php  | 15 +++++++++++++
 tests/assets/snippet-2.html | 16 ++++++++++++++
 3 files changed, 74 insertions(+)
 create mode 100644 tests/Dom/RulesTest.php
 create mode 100644 tests/assets/snippet-2.html

diff --git a/tests/Dom/RulesTest.php b/tests/Dom/RulesTest.php
new file mode 100644
index 0000000..d2d70a7
--- /dev/null
+++ b/tests/Dom/RulesTest.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Jaeger <JaegerCode@gmail.com>
+ * Date: 18/12/12
+ * Time: 下午12:25
+ */
+
+namespace Tests\Dom;
+
+
+use QL\QueryList;
+use Tests\TestCaseBase;
+use Tightenco\Collect\Support\Collection;
+
+class RulesTest extends TestCaseBase
+{
+    protected $html;
+    protected $ql;
+
+    public function setUp()
+    {
+        $this->html = $this->getSnippet('snippet-2');
+        $this->ql = QueryList::html($this->html);
+    }
+
+    /**
+     * @test
+     */
+    public function get_data_by_rules()
+    {
+        $rules = [
+            'a' => ['a','text'],
+            'img_src' => ['img','src'],
+            'img_alt' => ['img','alt']
+        ];
+        $range = 'ul>li';
+        $data = QueryList::rules($rules)->range($range)->html($this->html)->query()->getData();
+        $this->assertInstanceOf(Collection::class,$data);
+        $this->assertCount(3,$data);
+        $this->assertEquals('http://querylist.com/2.jpg',$data[1]['img_src']);
+    }
+}
\ No newline at end of file
diff --git a/tests/Feature/HttpTest.php b/tests/Feature/HttpTest.php
index 493cfbb..cba79e3 100644
--- a/tests/Feature/HttpTest.php
+++ b/tests/Feature/HttpTest.php
@@ -85,4 +85,19 @@ class HttpTest extends TestCaseBase
             })
             ->send();
     }
+
+    /**
+     * @test
+     */
+    public function request_with_cache()
+    {
+        $url = $this->urls[0];
+        $data = QueryList::get($url,null,[
+            'cache' => sys_get_temp_dir(),
+            'cache_ttl' => 600
+        ])->getHtml();
+        $data = json_decode($data,true);
+        $this->assertEquals($url,$data['url']);
+
+    }
 }
\ No newline at end of file
diff --git a/tests/assets/snippet-2.html b/tests/assets/snippet-2.html
new file mode 100644
index 0000000..88ae3f0
--- /dev/null
+++ b/tests/assets/snippet-2.html
@@ -0,0 +1,16 @@
+<div id="one">
+    <ul>
+        <li>
+            <a href="http://querylist.cc">QueryList官网</a>
+            <img src="http://querylist.com/1.jpg" alt="这是图片1" abc="这是一个自定义属性1">
+        </li>
+        <li>
+            <a href="http://v3.querylist.cc">QueryList V3文档</a>
+            <img src="http://querylist.com/2.jpg" alt="这是图片2" abc="这是一个自定义属性2">
+        </li>
+        <li>
+            <a href="http://v4.querylist.cc">QueryList V4文档</a>
+            <img src="http://querylist.com/3.jpg" alt="这是图片3" abc="这是一个自定义属性3">
+        </li>
+    </ul>
+</div>
\ No newline at end of file