test fixes

This commit is contained in:
Chakib Ben Ziane 2023-01-11 13:29:35 +01:00
parent 29fb93c98a
commit 97aa76288a
3 changed files with 37 additions and 26 deletions

View File

@ -208,7 +208,7 @@ func (ff *Firefox) scanBookmarks() ([]*MozBookmark, error) {
func (ff *Firefox) scanModifiedBookmarks(since timestamp) ([]*MozBookmark, error) {
// scan new/modifed folders and load them into node tree
_, err := ff.scanFolders(since)
tree.PrintTree(ff.NodeTree)
// tree.PrintTree(ff.NodeTree)
if err != nil {
return nil, err
}
@ -645,7 +645,6 @@ func (ff *Firefox) addTagNode(tagName string) (bool, *tree.Node) {
// add a folder node to the parsed node tree under the specified folder parent
// returns true if a new folder is created and false if folder already exists
//TEST: add folder node tests
func (ff *Firefox) addFolderNode(folder MozFolder) (bool, *tree.Node){
// use hashmap.RBTree to keep an index of scanned folders pointing
@ -655,7 +654,10 @@ func (ff *Firefox) addFolderNode(folder MozFolder) (bool, *tree.Node){
if seen {
// Update folder name if changed
if folderNode.Name != folder.Title {
if folderNode.Name != folder.Title &&
// Ignore root folders since we use our custom names
!utils.InList([]int{2,3,5,6}, int(folder.Id)){
log.Debugf("folder node <%s> updated to <%s>", folderNode.Name, folder.Title)
folderNode.Name = folder.Title
}
@ -673,7 +675,7 @@ func (ff *Firefox) addFolderNode(folder MozFolder) (bool, *tree.Node){
// If this folders' is a Firefox root folder use the appropriate title
// then add it to the root node
if utils.InList([]int{2,3,5,6}, int(folder.Id)) {
folderNode.Name = mozilla.RootFolders[folder.Id]
folderNode.Name = mozilla.RootFolderNames[folder.Id]
tree.AddChild(ff.NodeTree, folderNode)
} else {
folderNode.Name = folder.Title

View File

@ -21,6 +21,13 @@ import (
var ff Firefox
func TestMain(m *testing.M) {
setupFirefox()
exitVal := m.Run()
os.Exit(exitVal)
}
func setupFirefox() {
ff = Firefox{
FirefoxConfig: &FirefoxConfig{
BrowserConfig: &browsers.BrowserConfig{
@ -37,9 +44,6 @@ func TestMain(m *testing.M) {
tagMap: map[string]*tree.Node{},
folderMap: map[sqlid]*tree.Node{},
}
exitVal := m.Run()
os.Exit(exitVal)
}
func runPlacesTest(name string, t *testing.T, test func(t *testing.T)) {
@ -161,7 +165,7 @@ func Test_addFolderNode(t *testing.T) {
assert.True(t, created)
// root folder should have appropriate title
assert.Equal(t, fNode.Name, "Bookmarks Toolbar")
assert.Equal(t, fNode.Name, mozilla.RootFolderNames[mozilla.ToolbarID])
// Should be underneath root folder
assert.Equal(t, fNode.Parent, ff.NodeTree)
@ -211,7 +215,9 @@ func Test_addFolderNode(t *testing.T) {
}
// TODO: use tag name instead of id inside the map
//FIX: reset firefox data
func Test_addTagNode(t *testing.T) {
setupFirefox()
testTag := struct {
tagName string
@ -274,10 +280,6 @@ func Test_addTagNode(t *testing.T) {
})
}
func Test_fetchUrlChanges(t *testing.T) {
t.Error("split into small units")
}
func Test_PlaceBookmarkTimeParsing(t *testing.T) {
assert := assert.New(t)
pb := mozilla.MergedPlaceBookmark{
@ -477,18 +479,18 @@ func Test_scanBookmarks(t *testing.T) {
urlNode, exists := ff.URLIndex.Get(bk.Url)
assert.True(t, exists, "url missing in URLIndex")
// URL node has the right parent folder node
// check that url node has the right parent folder node
// If Parent is nil, it means no folder was assigned to this url node
parentFolder := bk.ParentFolder
switch parentFolder {
case "unfiled":
parentFolder = mozilla.RootFolders[mozilla.OtherID]
parentFolder = mozilla.RootFolderNames[mozilla.OtherID]
case "mobile":
parentFolder = mozilla.RootFolders[mozilla.MobileID]
parentFolder = mozilla.RootFolderNames[mozilla.MobileID]
}
if urlNode.(*tree.Node).Parent != nil {
assert.Equal(t, urlNode.(*tree.Node).Parent.Name, parentFolder,
assert.Equal(t, parentFolder, urlNode.(*tree.Node).Parent.Name,
"wrong folder for <%s>", bk.Url)
}
@ -497,8 +499,6 @@ func Test_scanBookmarks(t *testing.T) {
}
})
tree.PrintTree(ff.NodeTree)
})
}
@ -569,7 +569,7 @@ func Test_FindModifiedBookmarks(t *testing.T) {
modifiedBookmarks := map[string]bkTestData{
"https://go.dev/": {
tags: []string{"language"},
folders: []string{mozilla.RootFolders[mozilla.OtherID]}, // unfiled folder
folders: []string{mozilla.RootFolderNames[mozilla.OtherID]}, // unfiled folder
},
}
@ -579,14 +579,14 @@ func Test_FindModifiedBookmarks(t *testing.T) {
tags: []string{"bitcoin"},
folders: []string{
"Cryptocurrencies",
mozilla.RootFolders[mozilla.OtherID],
mozilla.RootFolders[mozilla.ToolbarID],
mozilla.RootFolderNames[mozilla.OtherID],
mozilla.RootFolderNames[mozilla.ToolbarID],
},
},
"https://lightning.network/": {
tags: []string{"bitcoin", "lightning"},
folders: []string{mozilla.RootFolders[mozilla.OtherID]},
folders: []string{mozilla.RootFolderNames[mozilla.OtherID]},
},
}
@ -680,5 +680,5 @@ func Test_FindModifiedBookmarks(t *testing.T) {
}
func Test_FindModifiedFolders(t *testing.T) {
t.Error("find modified folders")
t.Error("modified folder names should change the according bookmark tags")
}

View File

@ -22,15 +22,24 @@ import (
type Sqlid int64
var RootFolders = map[Sqlid]string{
RootID: RootName,
// Represnets the root folder names as shown on Firefox
var RootFolderTitles = map[Sqlid]string{
MenuID: "Bookmarks Menu",
ToolbarID: "Bookmarks Toolbar",
TagsID: TagsBranchName,
OtherID: "Other Bookmarks",
MobileID: "Mobile Bookmarks",
}
// Some root folders names in the tree
var RootFolderNames = map[Sqlid]string{
RootID: RootName,
TagsID: TagsBranchName,
MenuID: "menu",
ToolbarID: "toolbar",
OtherID: "other",
MobileID: "mobile",
}
const (
// Name of the root node
RootName = `ROOT`