github.com/projectdiscovery/nuclei/v2@v2.9.15/pkg/protocols/common/generators/generators_test.go (about) 1 package generators 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 8 "github.com/projectdiscovery/nuclei/v2/pkg/catalog/disk" 9 ) 10 11 func TestBatteringRamGenerator(t *testing.T) { 12 usernames := []string{"admin", "password"} 13 14 catalogInstance := disk.NewCatalog("") 15 generator, err := New(map[string]interface{}{"username": usernames}, BatteringRamAttack, "", false, catalogInstance, "") 16 require.Nil(t, err, "could not create generator") 17 18 iterator := generator.NewIterator() 19 count := 0 20 for { 21 _, ok := iterator.Value() 22 if !ok { 23 break 24 } 25 count++ 26 } 27 require.Equal(t, len(usernames), count, "could not get correct batteringram counts") 28 } 29 30 func TestPitchforkGenerator(t *testing.T) { 31 usernames := []string{"admin", "token"} 32 passwords := []string{"password1", "password2", "password3"} 33 34 catalogInstance := disk.NewCatalog("") 35 generator, err := New(map[string]interface{}{"username": usernames, "password": passwords}, PitchForkAttack, "", false, catalogInstance, "") 36 require.Nil(t, err, "could not create generator") 37 38 iterator := generator.NewIterator() 39 count := 0 40 for { 41 value, ok := iterator.Value() 42 if !ok { 43 break 44 } 45 count++ 46 require.Contains(t, usernames, value["username"], "Could not get correct pitchfork username") 47 require.Contains(t, passwords, value["password"], "Could not get correct pitchfork password") 48 } 49 require.Equal(t, len(usernames), count, "could not get correct pitchfork counts") 50 } 51 52 func TestClusterbombGenerator(t *testing.T) { 53 usernames := []string{"admin"} 54 passwords := []string{"admin", "password", "token"} 55 56 catalogInstance := disk.NewCatalog("") 57 generator, err := New(map[string]interface{}{"username": usernames, "password": passwords}, ClusterBombAttack, "", false, catalogInstance, "") 58 require.Nil(t, err, "could not create generator") 59 60 iterator := generator.NewIterator() 61 count := 0 62 for { 63 value, ok := iterator.Value() 64 if !ok { 65 break 66 } 67 count++ 68 require.Contains(t, usernames, value["username"], "Could not get correct clusterbomb username") 69 require.Contains(t, passwords, value["password"], "Could not get correct clusterbomb password") 70 } 71 require.Equal(t, 3, count, "could not get correct clusterbomb counts") 72 73 iterator.Reset() 74 count = 0 75 for { 76 value, ok := iterator.Value() 77 if !ok { 78 break 79 } 80 count++ 81 require.Contains(t, usernames, value["username"], "Could not get correct clusterbomb username") 82 require.Contains(t, passwords, value["password"], "Could not get correct clusterbomb password") 83 } 84 require.Equal(t, 3, count, "could not get correct clusterbomb counts") 85 }