branch: externals/plz commit 5f54b5ebeced21f57a1fc8d2681118d18503bd53 Author: Adam Porter <a...@alphapapa.net> Commit: Adam Porter <a...@alphapapa.net>
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