forked from Silverfish/proton-bridge
GODT-22: Frontend-backend
- GODT-1246 Implement settings view.
- GODT-1257 GODT-1246: Account and Help view
- GODT-1298: Minimal working build (panics)
- GODT-1298: loading QML (needs Popup window)
- GODT-1298: WARN: Adding PopupWindow not possible!
In therecipe qt the `quickwidgets` classes are within `quick` module, but
forgot to add library and include paths into cgo flags. Therefore
compilation fails and it would be hard to patch therecipe in order to
fix it.
I am not sure if rewrite PopupWindow into go would make any difference,
therefore I decided to use normal QML Window without borders.
- GODT-1298: Rework status window, add backend props, slots and signals.
- GODT-1298: Users
- GODT-1298: Login
- GODT-1298: WIP Help and bug report
- GODT-1178: MacOS dock icon control
- GODT-1298: Help, bug report, update and events
- GODT-1298: Apple Mail config and Settings (without cache on disk)
This commit is contained in:
@ -349,6 +349,7 @@ func (u *User) CheckBridgeLogin(password string) error {
|
||||
func (u *User) UpdateUser(ctx context.Context) error {
|
||||
u.lock.Lock()
|
||||
defer u.lock.Unlock()
|
||||
defer u.listener.Emit(events.UserRefreshEvent, u.userID)
|
||||
|
||||
_, err := u.client.UpdateUser(ctx)
|
||||
if err != nil {
|
||||
@ -376,6 +377,7 @@ func (u *User) SwitchAddressMode() error {
|
||||
|
||||
u.lock.Lock()
|
||||
defer u.lock.Unlock()
|
||||
defer u.listener.Emit(events.UserRefreshEvent, u.userID)
|
||||
|
||||
u.CloseAllConnections()
|
||||
|
||||
@ -414,7 +416,6 @@ func (u *User) logout() error {
|
||||
|
||||
if wasConnected {
|
||||
u.listener.Emit(events.LogoutEvent, u.userID)
|
||||
u.listener.Emit(events.UserRefreshEvent, u.userID)
|
||||
}
|
||||
|
||||
return err
|
||||
@ -425,6 +426,7 @@ func (u *User) logout() error {
|
||||
func (u *User) Logout() error {
|
||||
u.lock.Lock()
|
||||
defer u.lock.Unlock()
|
||||
defer u.listener.Emit(events.UserRefreshEvent, u.userID)
|
||||
|
||||
u.log.Debug("Logging out user")
|
||||
|
||||
|
||||
@ -41,6 +41,7 @@ func TestUpdateUser(t *testing.T) {
|
||||
m.pmapiClient.EXPECT().Addresses().Return([]*pmapi.Address{testPMAPIAddress}),
|
||||
|
||||
m.credentialsStore.EXPECT().UpdateEmails("user", []string{testPMAPIAddress.Email}).Return(testCredentials, nil),
|
||||
m.eventListener.EXPECT().Emit(events.UserRefreshEvent, "user"),
|
||||
)
|
||||
|
||||
r.NoError(t, user.UpdateUser(context.Background()))
|
||||
@ -68,6 +69,7 @@ func TestUserSwitchAddressMode(t *testing.T) {
|
||||
m.pmapiClient.EXPECT().CountMessages(gomock.Any(), "").Return([]*pmapi.MessagesCount{}, nil),
|
||||
m.pmapiClient.EXPECT().Addresses().Return([]*pmapi.Address{testPMAPIAddress}),
|
||||
m.credentialsStore.EXPECT().SwitchAddressMode("user").Return(testCredentialsSplit, nil),
|
||||
m.eventListener.EXPECT().Emit(events.UserRefreshEvent, "user"),
|
||||
)
|
||||
|
||||
// Check switch to split mode.
|
||||
@ -85,6 +87,7 @@ func TestUserSwitchAddressMode(t *testing.T) {
|
||||
m.pmapiClient.EXPECT().CountMessages(gomock.Any(), "").Return([]*pmapi.MessagesCount{}, nil),
|
||||
m.pmapiClient.EXPECT().Addresses().Return([]*pmapi.Address{testPMAPIAddress}),
|
||||
m.credentialsStore.EXPECT().SwitchAddressMode("user").Return(testCredentials, nil),
|
||||
m.eventListener.EXPECT().Emit(events.UserRefreshEvent, "user"),
|
||||
)
|
||||
|
||||
// Check switch to combined mode.
|
||||
@ -105,6 +108,7 @@ func TestLogoutUser(t *testing.T) {
|
||||
m.pmapiClient.EXPECT().AuthDelete(gomock.Any()).Return(nil),
|
||||
m.credentialsStore.EXPECT().Logout("user").Return(testCredentialsDisconnected, nil),
|
||||
m.eventListener.EXPECT().Emit(events.CloseConnectionEvent, "user@pm.me"),
|
||||
m.eventListener.EXPECT().Emit(events.UserRefreshEvent, "user"),
|
||||
)
|
||||
|
||||
err := user.Logout()
|
||||
@ -123,6 +127,7 @@ func TestLogoutUserFailsLogout(t *testing.T) {
|
||||
m.credentialsStore.EXPECT().Logout("user").Return(nil, errors.New("logout failed")),
|
||||
m.credentialsStore.EXPECT().Delete("user").Return(nil),
|
||||
m.eventListener.EXPECT().Emit(events.CloseConnectionEvent, "user@pm.me"),
|
||||
m.eventListener.EXPECT().Emit(events.UserRefreshEvent, "user"),
|
||||
)
|
||||
|
||||
err := user.Logout()
|
||||
|
||||
@ -52,8 +52,8 @@ func TestNewUserUnlockFails(t *testing.T) {
|
||||
m.pmapiClient.EXPECT().AuthDelete(gomock.Any()).Return(nil),
|
||||
m.credentialsStore.EXPECT().Logout("user").Return(testCredentialsDisconnected, nil),
|
||||
m.eventListener.EXPECT().Emit(events.CloseConnectionEvent, "user@pm.me"),
|
||||
m.eventListener.EXPECT().Emit(events.LogoutEvent, "user"),
|
||||
m.eventListener.EXPECT().Emit(events.UserRefreshEvent, "user"),
|
||||
m.eventListener.EXPECT().Emit(events.LogoutEvent, "user"),
|
||||
)
|
||||
|
||||
checkNewUserHasCredentials(m, "failed to unlock user: bad password", testCredentialsDisconnected)
|
||||
|
||||
@ -351,6 +351,7 @@ func (u *Users) ClearData() error {
|
||||
func (u *Users) DeleteUser(userID string, clearStore bool) error {
|
||||
u.lock.Lock()
|
||||
defer u.lock.Unlock()
|
||||
defer u.events.Emit(events.UserRefreshEvent, userID)
|
||||
|
||||
log := log.WithField("user", userID)
|
||||
|
||||
|
||||
@ -32,6 +32,9 @@ func TestClearData(t *testing.T) {
|
||||
users := testNewUsersWithUsers(t, m)
|
||||
defer cleanUpUsersData(users)
|
||||
|
||||
m.eventListener.EXPECT().Emit(events.UserRefreshEvent, "user")
|
||||
m.eventListener.EXPECT().Emit(events.UserRefreshEvent, "users")
|
||||
|
||||
m.eventListener.EXPECT().Emit(events.CloseConnectionEvent, "user@pm.me")
|
||||
m.eventListener.EXPECT().Emit(events.CloseConnectionEvent, "users@pm.me")
|
||||
m.eventListener.EXPECT().Emit(events.CloseConnectionEvent, "anotheruser@pm.me")
|
||||
|
||||
@ -38,7 +38,9 @@ func TestDeleteUser(t *testing.T) {
|
||||
m.credentialsStore.EXPECT().Logout("user").Return(testCredentialsDisconnected, nil),
|
||||
m.credentialsStore.EXPECT().Delete("user").Return(nil),
|
||||
)
|
||||
m.eventListener.EXPECT().Emit(events.UserRefreshEvent, "user")
|
||||
m.eventListener.EXPECT().Emit(events.CloseConnectionEvent, "user@pm.me")
|
||||
m.eventListener.EXPECT().Emit(events.UserRefreshEvent, "user")
|
||||
|
||||
err := users.DeleteUser("user", true)
|
||||
r.NoError(t, err)
|
||||
@ -61,7 +63,9 @@ func TestDeleteUserWithFailingLogout(t *testing.T) {
|
||||
m.credentialsStore.EXPECT().Delete("user").Return(nil),
|
||||
)
|
||||
|
||||
m.eventListener.EXPECT().Emit(events.UserRefreshEvent, "user")
|
||||
m.eventListener.EXPECT().Emit(events.CloseConnectionEvent, "user@pm.me")
|
||||
m.eventListener.EXPECT().Emit(events.UserRefreshEvent, "user")
|
||||
|
||||
err := users.DeleteUser("user", true)
|
||||
r.NoError(t, err)
|
||||
|
||||
@ -91,6 +91,7 @@ func TestNewUsersWithConnectedUserWithBadToken(t *testing.T) {
|
||||
m.credentialsStore.EXPECT().Get("user").Return(testCredentials, nil)
|
||||
m.credentialsStore.EXPECT().Logout("user").Return(testCredentialsDisconnected, nil)
|
||||
|
||||
m.eventListener.EXPECT().Emit(events.UserRefreshEvent, "user")
|
||||
m.eventListener.EXPECT().Emit(events.LogoutEvent, "user")
|
||||
m.eventListener.EXPECT().Emit(events.UserRefreshEvent, "user")
|
||||
m.eventListener.EXPECT().Emit(events.CloseConnectionEvent, "user@pm.me")
|
||||
|
||||
Reference in New Issue
Block a user