aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/updater/winhttp/winhttp_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'updater/winhttp/winhttp_test.go')
-rw-r--r--updater/winhttp/winhttp_test.go57
1 files changed, 57 insertions, 0 deletions
diff --git a/updater/winhttp/winhttp_test.go b/updater/winhttp/winhttp_test.go
new file mode 100644
index 00000000..42f38caa
--- /dev/null
+++ b/updater/winhttp/winhttp_test.go
@@ -0,0 +1,57 @@
+/* SPDX-License-Identifier: MIT
+ *
+ * Copyright (C) 2019 WireGuard LLC. All Rights Reserved.
+ */
+
+package winhttp
+
+import (
+ "fmt"
+ "io"
+ "io/ioutil"
+ "testing"
+)
+
+type progressPrinter struct {
+ downloaded uint64
+ total uint64
+}
+
+func (pp *progressPrinter) Write(p []byte) (int, error) {
+ bytes := len(p)
+ pp.downloaded += uint64(bytes)
+ fmt.Printf("%d/%d bytes, %f%%\n", pp.downloaded, pp.total, float64(pp.downloaded)/float64(pp.total)*100.0)
+ return bytes, nil
+}
+
+func TestResponse(t *testing.T) {
+ r, err := Get("WinHTTP Test Suite/1.0", "https://www.zx2c4.com/ip")
+ if err != nil {
+ t.Fatal(err)
+ }
+ length, err := r.Length()
+ if err != nil {
+ t.Fatal(err)
+ }
+ fmt.Printf("The length is %d\n", length)
+ bytes, err := ioutil.ReadAll(r)
+ if err != nil {
+ t.Fatal(err)
+ }
+ fmt.Println(string(bytes))
+ r.Close()
+
+ r, err = Get("WinHTTP Test Suite/1.0", "https://speed.hetzner.de/10GB.bin")
+ if err != nil {
+ t.Fatal(err)
+ }
+ length, err = r.Length()
+ if err != nil {
+ t.Fatal(err)
+ }
+ _, err = io.Copy(&progressPrinter{total: length}, r)
+ if err != nil {
+ t.Fatal(err)
+ }
+ r.Close()
+}