From 7409e2ea0f56207710ddb968ec03e252c7768200 Mon Sep 17 00:00:00 2001 From: Will Norris Date: Tue, 28 May 2013 19:44:09 -0700 Subject: [PATCH] add tests for URL errors caused by invalid input --- github/orgs_test.go | 131 +++++++++++++++++++++++++++++++++++++++++++ github/repos_test.go | 31 ++++++++++ github/users_test.go | 11 ++++ 3 files changed, 173 insertions(+) diff --git a/github/orgs_test.go b/github/orgs_test.go index 42c9667..ac2fb48 100644 --- a/github/orgs_test.go +++ b/github/orgs_test.go @@ -10,6 +10,7 @@ import ( "encoding/json" "fmt" "net/http" + "net/url" "reflect" "testing" ) @@ -63,6 +64,16 @@ func TestOrganizationsService_List_specifiedUser(t *testing.T) { } } +func TestOrganizationsService_List_invalidUser(t *testing.T) { + _, err := client.Organizations.List("%", nil) + if err == nil { + t.Errorf("Expected error to be returned") + } + if err, ok := err.(*url.Error); !ok { + t.Errorf("Expected URL parse error, got %+v", err) + } +} + func TestOrganizationsService_Get(t *testing.T) { setup() defer teardown() @@ -85,6 +96,16 @@ func TestOrganizationsService_Get(t *testing.T) { } } +func TestOrganizationsService_Get_invalidOrg(t *testing.T) { + _, err := client.Organizations.Get("%") + if err == nil { + t.Errorf("Expected error to be returned") + } + if err, ok := err.(*url.Error); !ok { + t.Errorf("Expected URL parse error, got %+v", err) + } +} + func TestOrganizationsService_Edit(t *testing.T) { setup() defer teardown() @@ -116,6 +137,16 @@ func TestOrganizationsService_Edit(t *testing.T) { } } +func TestOrganizationsService_Edit_invalidOrg(t *testing.T) { + _, err := client.Organizations.Edit("%", nil) + if err == nil { + t.Errorf("Expected error to be returned") + } + if err, ok := err.(*url.Error); !ok { + t.Errorf("Expected URL parse error, got %+v", err) + } +} + func TestOrganizationsService_ListMembers(t *testing.T) { setup() defer teardown() @@ -138,6 +169,16 @@ func TestOrganizationsService_ListMembers(t *testing.T) { } } +func TestOrganizationsService_ListMembers_invalidOrg(t *testing.T) { + _, err := client.Organizations.ListMembers("%") + if err == nil { + t.Errorf("Expected error to be returned") + } + if err, ok := err.(*url.Error); !ok { + t.Errorf("Expected URL parse error, got %+v", err) + } +} + func TestOrganizationsService_ListPublicMembers(t *testing.T) { setup() defer teardown() @@ -160,6 +201,16 @@ func TestOrganizationsService_ListPublicMembers(t *testing.T) { } } +func TestOrganizationsService_ListPublicMembers_invalidOrg(t *testing.T) { + _, err := client.Organizations.ListPublicMembers("%") + if err == nil { + t.Errorf("Expected error to be returned") + } + if err, ok := err.(*url.Error); !ok { + t.Errorf("Expected URL parse error, got %+v", err) + } +} + func TestOrganizationsService_CheckMembership(t *testing.T) { setup() defer teardown() @@ -225,6 +276,16 @@ func TestOrganizationsService_CheckMembership_error(t *testing.T) { } } +func TestOrganizationsService_CheckMembership_invalidOrg(t *testing.T) { + _, err := client.Organizations.CheckMembership("%", "u") + if err == nil { + t.Errorf("Expected error to be returned") + } + if err, ok := err.(*url.Error); !ok { + t.Errorf("Expected URL parse error, got %+v", err) + } +} + func TestOrganizationsService_CheckPublicMembership(t *testing.T) { setup() defer teardown() @@ -290,6 +351,16 @@ func TestOrganizationsService_CheckPublicMembership_error(t *testing.T) { } } +func TestOrganizationsService_CheckPublicMembership_invalidOrg(t *testing.T) { + _, err := client.Organizations.CheckPublicMembership("%", "u") + if err == nil { + t.Errorf("Expected error to be returned") + } + if err, ok := err.(*url.Error); !ok { + t.Errorf("Expected URL parse error, got %+v", err) + } +} + func TestOrganizationsService_RemoveMember(t *testing.T) { setup() defer teardown() @@ -306,6 +377,16 @@ func TestOrganizationsService_RemoveMember(t *testing.T) { } } +func TestOrganizationsService_RemoveMember_invalidOrg(t *testing.T) { + err := client.Organizations.RemoveMember("%", "u") + if err == nil { + t.Errorf("Expected error to be returned") + } + if err, ok := err.(*url.Error); !ok { + t.Errorf("Expected URL parse error, got %+v", err) + } +} + func TestOrganizationsService_ListTeams(t *testing.T) { setup() defer teardown() @@ -328,6 +409,16 @@ func TestOrganizationsService_ListTeams(t *testing.T) { } } +func TestOrganizationsService_ListTeams_invalidOrg(t *testing.T) { + _, err := client.Organizations.ListTeams("%") + if err == nil { + t.Errorf("Expected error to be returned") + } + if err, ok := err.(*url.Error); !ok { + t.Errorf("Expected URL parse error, got %+v", err) + } +} + func TestOrganizationsService_AddTeamMember(t *testing.T) { setup() defer teardown() @@ -344,6 +435,16 @@ func TestOrganizationsService_AddTeamMember(t *testing.T) { } } +func TestOrganizationsService_AddTeamMember_invalidUser(t *testing.T) { + err := client.Organizations.AddTeamMember(1, "%") + if err == nil { + t.Errorf("Expected error to be returned") + } + if err, ok := err.(*url.Error); !ok { + t.Errorf("Expected URL parse error, got %+v", err) + } +} + func TestOrganizationsService_RemoveTeamMember(t *testing.T) { setup() defer teardown() @@ -360,6 +461,16 @@ func TestOrganizationsService_RemoveTeamMember(t *testing.T) { } } +func TestOrganizationsService_RemoveTeamMember_invalidUser(t *testing.T) { + err := client.Organizations.RemoveTeamMember(1, "%") + if err == nil { + t.Errorf("Expected error to be returned") + } + if err, ok := err.(*url.Error); !ok { + t.Errorf("Expected URL parse error, got %+v", err) + } +} + func TestOrganizationsService_PublicizeMembership(t *testing.T) { setup() defer teardown() @@ -376,6 +487,16 @@ func TestOrganizationsService_PublicizeMembership(t *testing.T) { } } +func TestOrganizationsService_PublicizeMembership_invalidOrg(t *testing.T) { + err := client.Organizations.PublicizeMembership("%", "u") + if err == nil { + t.Errorf("Expected error to be returned") + } + if err, ok := err.(*url.Error); !ok { + t.Errorf("Expected URL parse error, got %+v", err) + } +} + func TestOrganizationsService_ConcealMembership(t *testing.T) { setup() defer teardown() @@ -391,3 +512,13 @@ func TestOrganizationsService_ConcealMembership(t *testing.T) { t.Errorf("Organizations.ConcealMembership returned error: %v", err) } } + +func TestOrganizationsService_ConcealMembership_invalidOrg(t *testing.T) { + err := client.Organizations.ConcealMembership("%", "u") + if err == nil { + t.Errorf("Expected error to be returned") + } + if err, ok := err.(*url.Error); !ok { + t.Errorf("Expected URL parse error, got %+v", err) + } +} diff --git a/github/repos_test.go b/github/repos_test.go index 925677a..f5e8a13 100644 --- a/github/repos_test.go +++ b/github/repos_test.go @@ -9,6 +9,7 @@ package github import ( "fmt" "net/http" + "net/url" "reflect" "testing" ) @@ -72,6 +73,16 @@ func TestRepositoriesService_List_specifiedUser(t *testing.T) { } } +func TestRepositoriesService_List_invalidUser(t *testing.T) { + _, err := client.Repositories.List("%", nil) + if err == nil { + t.Errorf("Expected error to be returned") + } + if err, ok := err.(*url.Error); !ok { + t.Errorf("Expected URL parse error, got %+v", err) + } +} + func TestRepositoriesService_ListByOrg(t *testing.T) { setup() defer teardown() @@ -103,6 +114,16 @@ func TestRepositoriesService_ListByOrg(t *testing.T) { } } +func TestRepositoriesService_ListByOrg_invalidOrg(t *testing.T) { + _, err := client.Repositories.ListByOrg("%", nil) + if err == nil { + t.Errorf("Expected error to be returned") + } + if err, ok := err.(*url.Error); !ok { + t.Errorf("Expected URL parse error, got %+v", err) + } +} + func TestRepositoriesService_Get(t *testing.T) { setup() defer teardown() @@ -124,3 +145,13 @@ func TestRepositoriesService_Get(t *testing.T) { t.Errorf("Repositories.Get returned %+v, want %+v", repo, want) } } + +func TestRepositoriesService_Get_invalidOwner(t *testing.T) { + _, err := client.Repositories.Get("%", "r") + if err == nil { + t.Errorf("Expected error to be returned") + } + if err, ok := err.(*url.Error); !ok { + t.Errorf("Expected URL parse error, got %+v", err) + } +} diff --git a/github/users_test.go b/github/users_test.go index b1de382..b3836fc 100644 --- a/github/users_test.go +++ b/github/users_test.go @@ -10,6 +10,7 @@ import ( "encoding/json" "fmt" "net/http" + "net/url" "reflect" "testing" ) @@ -58,6 +59,16 @@ func TestUsersService_Get_specifiedUser(t *testing.T) { } } +func TestUsersService_Get_invalidUser(t *testing.T) { + _, err := client.Users.Get("%") + if err == nil { + t.Errorf("Expected error to be returned") + } + if err, ok := err.(*url.Error); !ok { + t.Errorf("Expected URL parse error, got %+v", err) + } +} + func TestUsersService_Edit(t *testing.T) { setup() defer teardown()