github.com/verrazzano/verrazzano@v1.7.1/tests/e2e/pkg/dns_test.go (about)

     1  // Copyright (c) 2021, Oracle and/or its affiliates.
     2  // Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
     3  
     4  package pkg
     5  
     6  import (
     7  	asserts "github.com/stretchr/testify/assert"
     8  	"testing"
     9  )
    10  
    11  // TestDNSWildcards tests if a string uses a DNS wildcard
    12  // Given a set of strings
    13  // WHEN a string has a valid DNS wildcard syntax
    14  // THEN return true
    15  func TestValidWildcard(t *testing.T) {
    16  	assert := asserts.New(t)
    17  	tests := []struct {
    18  		name   string
    19  		data   string
    20  		domain string
    21  	}{
    22  		{
    23  			name:   "test1",
    24  			data:   "nip.io",
    25  			domain: "nip.io",
    26  		},
    27  		{
    28  			name:   "test2",
    29  			data:   "a.nip.io",
    30  			domain: "nip.io",
    31  		},
    32  		{
    33  			name:   "test3",
    34  			data:   "a.nip.io:33",
    35  			domain: "nip.io",
    36  		},
    37  		{
    38  			name:   "test4",
    39  			data:   "a.nip.io:33",
    40  			domain: "nip.io",
    41  		},
    42  		{
    43  			name:   "test5",
    44  			data:   "123.23.344.343.nip.io/foo:33",
    45  			domain: "nip.io",
    46  		},
    47  		{
    48  			name:   "test6",
    49  			data:   "a.nip.io",
    50  			domain: "nip.io",
    51  		},
    52  		{
    53  			name:   "test7",
    54  			data:   "a.sslip.io",
    55  			domain: "sslip.io",
    56  		},
    57  	}
    58  	for _, test := range tests {
    59  		t.Run(test.name, func(t *testing.T) {
    60  			assert.True(HasWildcardDNS(test.data), test.name+" failed")
    61  			assert.Equal(GetWildcardDNS(test.data), test.domain, test.name+" failed")
    62  		})
    63  	}
    64  }
    65  
    66  // TestNotWildcard tests if a string does not use a DNS wildcard
    67  // Given a set of strings
    68  // WHEN a string does not have a valid DNS wildcard syntax
    69  // THEN return false
    70  func TestNotWildcard(t *testing.T) {
    71  	assert := asserts.New(t)
    72  	tests := []struct {
    73  		name string
    74  		data string
    75  	}{
    76  		{
    77  			name: "test1",
    78  			data: "xipp.io",
    79  		},
    80  		{
    81  			name: "test2",
    82  			data: "xipio.a",
    83  		},
    84  		{
    85  			name: "test5",
    86  			data: "123.23.344.343.xip:33",
    87  		},
    88  		{
    89  			name: "test6",
    90  			data: "nip.b",
    91  		},
    92  		{
    93  			name: "test7",
    94  			data: "sslip.b",
    95  		},
    96  	}
    97  	for _, test := range tests {
    98  		t.Run(test.name, func(t *testing.T) {
    99  			assert.False(HasWildcardDNS(test.data), test.name+" failed")
   100  		})
   101  	}
   102  }