github.com/status-im/status-go@v1.1.0/protocol/messenger_browsers_test.go (about) 1 package protocol 2 3 import ( 4 "context" 5 "sort" 6 "testing" 7 8 "github.com/stretchr/testify/suite" 9 10 "github.com/status-im/status-go/services/browsers" 11 ) 12 13 func TestBrowserSuite(t *testing.T) { 14 suite.Run(t, new(BrowserSuite)) 15 } 16 17 type BrowserSuite struct { 18 MessengerBaseTestSuite 19 } 20 21 func (s *BrowserSuite) SetupTest() { 22 s.MessengerBaseTestSuite.SetupTest() 23 _, err := s.m.Start() 24 s.Require().NoError(err) 25 } 26 27 func (s *MessengerBackupSuite) TestBrowsersOrderedNewestFirst() { 28 msngr := s.newMessenger() 29 testBrowsers := []*browsers.Browser{ 30 { 31 ID: "1", 32 Name: "first", 33 Dapp: true, 34 Timestamp: 10, 35 }, 36 { 37 ID: "2", 38 Name: "second", 39 Dapp: true, 40 Timestamp: 50, 41 }, 42 { 43 ID: "3", 44 Name: "third", 45 Dapp: true, 46 Timestamp: 100, 47 HistoryIndex: 0, 48 History: []string{"zero"}, 49 }, 50 } 51 for i := 0; i < len(testBrowsers); i++ { 52 s.Require().NoError(msngr.AddBrowser(context.TODO(), *testBrowsers[i])) 53 } 54 55 sort.Slice(testBrowsers, func(i, j int) bool { 56 return testBrowsers[i].Timestamp > testBrowsers[j].Timestamp 57 }) 58 59 rst, err := msngr.GetBrowsers(context.TODO()) 60 s.Require().NoError(err) 61 s.Require().Equal(testBrowsers, rst) 62 } 63 64 func (s *MessengerBackupSuite) TestBrowsersHistoryIncluded() { 65 msngr := s.newMessenger() 66 browser := &browsers.Browser{ 67 ID: "1", 68 Name: "first", 69 Dapp: true, 70 Timestamp: 10, 71 HistoryIndex: 1, 72 History: []string{"one", "two"}, 73 } 74 s.Require().NoError(msngr.AddBrowser(context.TODO(), *browser)) 75 rst, err := msngr.GetBrowsers(context.TODO()) 76 s.Require().NoError(err) 77 s.Require().Len(rst, 1) 78 s.Require().Equal(browser, rst[0]) 79 } 80 81 func (s *MessengerBackupSuite) TestBrowsersReplaceOnUpdate() { 82 msngr := s.newMessenger() 83 browser := &browsers.Browser{ 84 ID: "1", 85 Name: "first", 86 Dapp: true, 87 Timestamp: 10, 88 History: []string{"one", "two"}, 89 } 90 s.Require().NoError(msngr.AddBrowser(context.TODO(), *browser)) 91 browser.Dapp = false 92 browser.History = []string{"one", "three"} 93 browser.Timestamp = 107 94 s.Require().NoError(msngr.AddBrowser(context.TODO(), *browser)) 95 rst, err := msngr.GetBrowsers(context.TODO()) 96 s.Require().NoError(err) 97 s.Require().Len(rst, 1) 98 s.Require().Equal(browser, rst[0]) 99 } 100 101 func (s *MessengerBackupSuite) TestDeleteBrowser() { 102 msngr := s.newMessenger() 103 browser := &browsers.Browser{ 104 ID: "1", 105 Name: "first", 106 Dapp: true, 107 Timestamp: 10, 108 History: []string{"one", "two"}, 109 } 110 111 s.Require().NoError(msngr.AddBrowser(context.TODO(), *browser)) 112 rst, err := msngr.GetBrowsers(context.TODO()) 113 s.Require().NoError(err) 114 s.Require().Len(rst, 1) 115 116 s.Require().NoError(msngr.DeleteBrowser(context.TODO(), browser.ID)) 117 rst, err = msngr.GetBrowsers(context.TODO()) 118 s.Require().NoError(err) 119 s.Require().Len(rst, 0) 120 }