403Webshell
Server IP : 157.230.181.24  /  Your IP : 216.73.217.11
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux conductive 6.8.0-117-generic #117-Ubuntu SMP PREEMPT_DYNAMIC Tue May 5 19:26:24 UTC 2026 x86_64
User :  ( 1000)
PHP Version : 8.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/vhosts/ceagon/open-oscar-server/state/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/vhosts/ceagon/open-oscar-server/state/account_test.go
package state

import (
	"context"
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestNewAccountCreator(t *testing.T) {
	tests := []struct {
		name          string
		screenName    DisplayScreenName
		password      string
		insertUserErr error
		wantErr       error
		validateUser  func(*testing.T, User)
	}{
		{
			name:       "Success with valid AIM handle",
			screenName: "TestUser123",
			password:   "validpass123",
			wantErr:    nil,
			validateUser: func(t *testing.T, u User) {
				assert.Equal(t, DisplayScreenName("TestUser123"), u.DisplayScreenName)
				assert.Equal(t, NewIdentScreenName("testuser123"), u.IdentScreenName)
				assert.False(t, u.IsICQ)
				assert.NotEmpty(t, u.AuthKey)
				assert.NotNil(t, u.WeakMD5Pass)
				assert.NotNil(t, u.StrongMD5Pass)
			},
		},
		{
			name:       "Success with valid UIN",
			screenName: "12345678",
			password:   "valid12",
			wantErr:    nil,
			validateUser: func(t *testing.T, u User) {
				assert.Equal(t, DisplayScreenName("12345678"), u.DisplayScreenName)
				assert.Equal(t, NewIdentScreenName("12345678"), u.IdentScreenName)
				assert.True(t, u.IsICQ)
				assert.NotEmpty(t, u.AuthKey)
				assert.NotNil(t, u.WeakMD5Pass)
				assert.NotNil(t, u.StrongMD5Pass)
			},
		},
		{
			name:       "Success with AIM handle containing spaces",
			screenName: "Test User 123",
			password:   "validpass123",
			wantErr:    nil,
			validateUser: func(t *testing.T, u User) {
				assert.Equal(t, DisplayScreenName("Test User 123"), u.DisplayScreenName)
				assert.Equal(t, NewIdentScreenName("test user 123"), u.IdentScreenName)
				assert.False(t, u.IsICQ)
			},
		},
		{
			name:       "Invalid AIM handle - too short",
			screenName: "Us",
			password:   "validpass123",
			wantErr:    ErrAIMHandleLength,
		},
		{
			name:       "Invalid AIM handle - starts with number",
			screenName: "1User",
			password:   "validpass123",
			wantErr:    ErrAIMHandleInvalidFormat,
		},
		{
			name:       "Invalid AIM handle - ends with space",
			screenName: "User123 ",
			password:   "validpass123",
			wantErr:    ErrAIMHandleInvalidFormat,
		},
		{
			name:       "Invalid UIN - too small",
			screenName: "9999",
			password:   "valid12",
			wantErr:    ErrICQUINInvalidFormat,
		},
		{
			name:       "Invalid UIN - too large",
			screenName: "2147483647",
			password:   "valid12",
			wantErr:    ErrICQUINInvalidFormat,
		},
		{
			name:       "Invalid UIN - contains non-digits",
			screenName: "12345abc",
			password:   "valid12",
			wantErr:    ErrAIMHandleInvalidFormat, // Will be validated as AIM handle since IsUIN() returns false
		},
		{
			name:          "insertUser error",
			screenName:    "TestUser123",
			password:      "validpass123",
			insertUserErr: assert.AnError,
			wantErr:       assert.AnError,
		},
	}

	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			var capturedUser User

			insertUser := func(ctx context.Context, u User) error {
				capturedUser = u
				return tt.insertUserErr
			}

			createAccount := NewAccountCreator(insertUser)
			err := createAccount(context.Background(), tt.screenName, tt.password)

			assert.ErrorIs(t, err, tt.wantErr)

			if tt.validateUser != nil {
				tt.validateUser(t, capturedUser)
			}
		})
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit