Add tests for network-lookup-address-info
authorRobert Pluim <rpluim@gmail.com>
Tue, 17 Jul 2018 11:10:21 +0000 (13:10 +0200)
committerRobert Pluim <rpluim@gmail.com>
Tue, 17 Jul 2018 11:10:21 +0000 (13:10 +0200)
* test/src/process-tests.el (lookup-family-specification): Test
network-lookup-address-info api.
(lookup-unicode-domains): Test that unicode domains fail.
(lookup-google): Test that normal lookups succeed.
(non-existent-lookup-failure): Check that known non-existent
domains fail.

test/src/process-tests.el

index 551b34ff37193fe0799cdba8f81f0fccbf8e4bb0..2cc646e5a6cf48c96add6281290dee7e4551349d 100644 (file)
@@ -22,6 +22,7 @@
 ;;; Code:
 
 (require 'ert)
+(require 'puny)
 
 ;; Timeout in seconds; the test fails if the timeout is reached.
 (defvar process-test-sentinel-wait-timeout 2.0)
                                       (string-to-list "stdout\n")
                                       (string-to-list "stderr\n"))))))
 
+(ert-deftest lookup-family-specification ()
+  "network-lookup-address-info should only accept valid family symbols."
+  (should-error (network-lookup-address-info "google.com" 'both))
+  (should (network-lookup-address-info "google.com" 'ipv4))
+  (should (network-lookup-address-info "google.com" 'ipv6)))
+
+(ert-deftest lookup-unicode-domains ()
+  "Unicode domains should fail"
+  (should-error (network-lookup-address-info "faß.de"))
+  (should (length (network-lookup-address-info (puny-encode-domain "faß.de")))))
+
+(ert-deftest lookup-google ()
+  "Check that we can look up google IP addresses"
+  (let ((addresses-both (network-lookup-address-info "google.com"))
+        (addresses-v4 (network-lookup-address-info "google.com" 'ipv4))
+        (addresses-v6 (network-lookup-address-info "google.com" 'ipv6)))
+    (should (length addresses-both))
+    (should (length addresses-v4))
+    (should (length addresses-v6))))
+
+(ert-deftest non-existent-lookup-failure ()
+  "Check that looking up non-existent domain returns nil"
+  (should (eq nil (network-lookup-address-info "emacs.invalid"))))
+
 (provide 'process-tests)
 ;; process-tests.el ends here.