Launcher, app/base, sentry, update service

This commit is contained in:
James Houlahan
2020-11-23 11:56:57 +01:00
parent 6fffb460b8
commit dc3f61acee
164 changed files with 5368 additions and 4039 deletions

View File

@ -1,5 +1,5 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/ProtonMail/proton-bridge/internal/users (interfaces: Configer,PanicHandler,ClientManager,CredentialsStorer,StoreMaker)
// Source: github.com/ProtonMail/proton-bridge/internal/users (interfaces: Locator,PanicHandler,ClientManager,CredentialsStorer,StoreMaker)
// Package mocks is a generated GoMock package.
package mocks
@ -13,69 +13,41 @@ import (
gomock "github.com/golang/mock/gomock"
)
// MockConfiger is a mock of Configer interface
type MockConfiger struct {
// MockLocator is a mock of Locator interface
type MockLocator struct {
ctrl *gomock.Controller
recorder *MockConfigerMockRecorder
recorder *MockLocatorMockRecorder
}
// MockConfigerMockRecorder is the mock recorder for MockConfiger
type MockConfigerMockRecorder struct {
mock *MockConfiger
// MockLocatorMockRecorder is the mock recorder for MockLocator
type MockLocatorMockRecorder struct {
mock *MockLocator
}
// NewMockConfiger creates a new mock instance
func NewMockConfiger(ctrl *gomock.Controller) *MockConfiger {
mock := &MockConfiger{ctrl: ctrl}
mock.recorder = &MockConfigerMockRecorder{mock}
// NewMockLocator creates a new mock instance
func NewMockLocator(ctrl *gomock.Controller) *MockLocator {
mock := &MockLocator{ctrl: ctrl}
mock.recorder = &MockLocatorMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use
func (m *MockConfiger) EXPECT() *MockConfigerMockRecorder {
func (m *MockLocator) EXPECT() *MockLocatorMockRecorder {
return m.recorder
}
// ClearData mocks base method
func (m *MockConfiger) ClearData() error {
// Clear mocks base method
func (m *MockLocator) Clear() error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ClearData")
ret := m.ctrl.Call(m, "Clear")
ret0, _ := ret[0].(error)
return ret0
}
// ClearData indicates an expected call of ClearData
func (mr *MockConfigerMockRecorder) ClearData() *gomock.Call {
// Clear indicates an expected call of Clear
func (mr *MockLocatorMockRecorder) Clear() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ClearData", reflect.TypeOf((*MockConfiger)(nil).ClearData))
}
// GetAPIConfig mocks base method
func (m *MockConfiger) GetAPIConfig() *pmapi.ClientConfig {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "GetAPIConfig")
ret0, _ := ret[0].(*pmapi.ClientConfig)
return ret0
}
// GetAPIConfig indicates an expected call of GetAPIConfig
func (mr *MockConfigerMockRecorder) GetAPIConfig() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAPIConfig", reflect.TypeOf((*MockConfiger)(nil).GetAPIConfig))
}
// GetVersion mocks base method
func (m *MockConfiger) GetVersion() string {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "GetVersion")
ret0, _ := ret[0].(string)
return ret0
}
// GetVersion indicates an expected call of GetVersion
func (mr *MockConfigerMockRecorder) GetVersion() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVersion", reflect.TypeOf((*MockConfiger)(nil).GetVersion))
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Clear", reflect.TypeOf((*MockLocator)(nil).Clear))
}
// MockPanicHandler is a mock of PanicHandler interface

View File

@ -24,11 +24,14 @@ import (
)
type Configer interface {
ClearData() error
GetVersion() string
GetAppVersion() string
GetAPIConfig() *pmapi.ClientConfig
}
type Locator interface {
Clear() error
}
type PanicHandler interface {
HandlePanic()
}

View File

@ -38,7 +38,7 @@ var (
// Users is a struct handling users.
type Users struct {
config Configer
locations Locator
panicHandler PanicHandler
events listener.Listener
clientManager ClientManager
@ -64,7 +64,7 @@ type Users struct {
}
func New(
config Configer,
locations Locator,
panicHandler PanicHandler,
eventListener listener.Listener,
clientManager ClientManager,
@ -75,7 +75,7 @@ func New(
log.Trace("Creating new users")
u := &Users{
config: config,
locations: locations,
panicHandler: panicHandler,
events: eventListener,
clientManager: clientManager,
@ -387,7 +387,8 @@ func (u *Users) GetUser(query string) (*User, error) {
// ClearData closes all connections (to release db files and so on) and clears all data.
func (u *Users) ClearData() error {
var result *multierror.Error
var result error
for _, user := range u.users {
if err := user.Logout(); err != nil {
result = multierror.Append(result, err)
@ -396,10 +397,12 @@ func (u *Users) ClearData() error {
result = multierror.Append(result, err)
}
}
if err := u.config.ClearData(); err != nil {
if err := u.locations.Clear(); err != nil {
result = multierror.Append(result, err)
}
return result.ErrorOrNil()
return result
}
// DeleteUser deletes user completely; it logs user out from the API, stops any

View File

@ -127,7 +127,7 @@ type mocks struct {
t *testing.T
ctrl *gomock.Controller
config *usersmocks.MockConfiger
locator *usersmocks.MockLocator
PanicHandler *usersmocks.MockPanicHandler
clientManager *usersmocks.MockClientManager
credentialsStore *usersmocks.MockCredentialsStorer
@ -168,7 +168,7 @@ func initMocks(t *testing.T) mocks {
t: t,
ctrl: mockCtrl,
config: usersmocks.NewMockConfiger(mockCtrl),
locator: usersmocks.NewMockLocator(mockCtrl),
PanicHandler: usersmocks.NewMockPanicHandler(mockCtrl),
clientManager: usersmocks.NewMockClientManager(mockCtrl),
credentialsStore: usersmocks.NewMockCredentialsStorer(mockCtrl),
@ -234,11 +234,10 @@ func testNewUsersWithUsers(t *testing.T, m mocks) *Users {
}
func testNewUsers(t *testing.T, m mocks) *Users { //nolint[unparam]
m.config.EXPECT().GetVersion().Return("ver").AnyTimes()
m.eventListener.EXPECT().Add(events.UpgradeApplicationEvent, gomock.Any())
m.clientManager.EXPECT().GetAuthUpdateChannel().Return(make(chan pmapi.ClientAuth))
users := New(m.config, m.PanicHandler, m.eventListener, m.clientManager, m.credentialsStore, m.storeMaker, true)
users := New(m.locator, m.PanicHandler, m.eventListener, m.clientManager, m.credentialsStore, m.storeMaker, true)
waitForEvents()
@ -274,7 +273,7 @@ func TestClearData(t *testing.T) {
m.credentialsStore.EXPECT().Logout("users").Return(nil)
m.credentialsStore.EXPECT().Get("users").Return(testCredentialsSplit, nil)
m.config.EXPECT().ClearData().Return(nil)
m.locator.EXPECT().Clear()
require.NoError(t, users.ClearData())