github.com/oweisse/u-root@v0.0.0-20181109060735-d005ad25fef1/pkg/wpa/passphrase/passphrase_test.go (about) 1 // Copyright 2018 the u-root Authors. All rights reserved 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package passphrase 6 7 import ( 8 "fmt" 9 "reflect" 10 "testing" 11 ) 12 13 type RunTestCase struct { 14 name string 15 essid string 16 pass string 17 out string 18 err error 19 } 20 21 var ( 22 essidStub = "stub" 23 shortPass = "aaaaaaa" // 7 chars 24 longPass = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" // 64 chars 25 validPass = "aaaaaaaaaaaaaaaa" // 16 chars 26 correctOutput = `network={ 27 ssid="stub" 28 #psk="aaaaaaaaaaaaaaaa" 29 psk=e270ba95a72c6d922e902f65dfa23315f7ba43b69debc75167254acd778f2fe9 30 } 31 ` 32 runTestCases = []RunTestCase{ 33 { 34 name: "No essid", 35 essid: "", 36 pass: validPass, 37 out: "", 38 err: fmt.Errorf("essid cannot be empty"), 39 }, 40 { 41 name: "pass length is less than 8 chars", 42 essid: essidStub, 43 pass: shortPass, 44 out: "", 45 err: fmt.Errorf("Passphrase must be 8..63 characters"), 46 }, 47 { 48 name: "pass length is more than 63 chars", 49 essid: essidStub, 50 pass: longPass, 51 out: "", 52 err: fmt.Errorf("Passphrase must be 8..63 characters"), 53 }, 54 { 55 name: "Correct Input", 56 essid: essidStub, 57 pass: validPass, 58 out: correctOutput, 59 err: nil, 60 }, 61 } 62 ) 63 64 func TestRun(t *testing.T) { 65 for _, test := range runTestCases { 66 out, err := Run(test.essid, test.pass) 67 if !reflect.DeepEqual(err, test.err) || string(out) != test.out { 68 t.Errorf("TEST %s\ngot:[%v, %v]\nwant:[%v, %v]", test.name, err, string(out), test.err, string(test.out)) 69 } 70 } 71 }