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  }