branch: externals/plz
commit 5f54b5ebeced21f57a1fc8d2681118d18503bd53
Author: Adam Porter <[email protected]>
Commit: Adam Porter <[email protected]>
Changes
---
test/test-plz.el | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
diff --git a/test/test-plz.el b/test/test-plz.el
index e63932b66b..cadcbab3bb 100644
--- a/test/test-plz.el
+++ b/test/test-plz.el
@@ -27,6 +27,7 @@
;;;; Requirements
(require 'ert)
+(require 'json)
;;;; Variables
@@ -39,10 +40,31 @@
;;;; Functions
+(defun plz-test-get-response (response)
+ "Return non-nil if RESPONSE seems to be a correct GET response."
+ (and (plz-response-p response)
+ (numberp (plz-response-version response))
+ (eq 200 (plz-response-status response))
+ (equal "application/json" (alist-get "Content-Type"
(plz-response-headers response) nil nil #'equal))
+ (let* ((json (json-read-from-string (plz-response-body response)))
+ (headers (alist-get 'headers json))
+ (user-agent (alist-get 'User-Agent headers nil nil #'equal)))
+ (string-match "curl" user-agent))))
+
;;;; Tests
+(ert-deftest plz-get-async nil
+ (let* ((test-response)
+ (process (plz-get "https://httpbin.org/get"
+ :success (lambda (response)
+ (setf test-response response)))))
+ (cl-loop for i upto 100 ;; 10 seconds
+ while (equal 'run (process-status process))
+ do (sleep-for 0.1))
+ (plz-test-get-response test-response)))
+
(ert-deftest plz-get-sync nil
- (plz-response-p (plz-get "https://httpbin.org/get" :sync t)))
+ (plz-test-get-response (plz-get "https://httpbin.org/get" :sync t)))
;;;; Footer