diff --git a/stubs/wails/pkg/application/application_test.go b/stubs/wails/pkg/application/application_test.go index cb2d4394..149b746b 100644 --- a/stubs/wails/pkg/application/application_test.go +++ b/stubs/wails/pkg/application/application_test.go @@ -56,6 +56,43 @@ func TestApplication_MenuRole_String_Ugly(t *testing.T) { assert.Equal(t, "unknown", MenuRole(999).String()) } +func TestApplication_MenuItem_OnClick_Good(t *testing.T) { + called := 0 + item := &MenuItem{} + + item.OnClick(func(*Context) { + called++ + }) + require.NotNil(t, item.onClick) + item.onClick(&Context{}) + + assert.Equal(t, 1, called) +} + +func TestApplication_MenuItem_OnClick_Bad(t *testing.T) { + item := &MenuItem{} + + item.OnClick(nil) + + assert.Nil(t, item.onClick) +} + +func TestApplication_MenuItem_OnClick_Ugly(t *testing.T) { + called := 0 + item := &MenuItem{} + + item.OnClick(func(*Context) { + called++ + }) + item.OnClick(func(*Context) { + called++ + }) + require.NotNil(t, item.onClick) + item.onClick(&Context{}) + + assert.Equal(t, 1, called) +} + func TestApplication_Menu_Good(t *testing.T) { menu := NewMenu() menuItem := menu.Add("Open") @@ -90,6 +127,34 @@ func TestApplication_Menu_Ugly(t *testing.T) { assert.Equal(t, "Nested", menu.Items[0].Label) } +func TestApplication_MenuManager_SetApplicationMenu_Good(t *testing.T) { + manager := &MenuManager{} + menu := NewMenu() + + manager.SetApplicationMenu(menu) + + assert.Same(t, menu, manager.applicationMenu) +} + +func TestApplication_MenuManager_SetApplicationMenu_Bad(t *testing.T) { + manager := &MenuManager{} + + manager.SetApplicationMenu(nil) + + assert.Nil(t, manager.applicationMenu) +} + +func TestApplication_MenuManager_SetApplicationMenu_Ugly(t *testing.T) { + manager := &MenuManager{} + first := NewMenu() + second := NewMenu() + + manager.SetApplicationMenu(first) + manager.SetApplicationMenu(second) + + assert.Same(t, second, manager.applicationMenu) +} + func TestApplication_SystemTray_Good(t *testing.T) { tray := (&SystemTrayManager{}).New() menu := NewMenu() diff --git a/stubs/wails/pkg/application/webview_window_options_test.go b/stubs/wails/pkg/application/webview_window_options_test.go new file mode 100644 index 00000000..d2d888bd --- /dev/null +++ b/stubs/wails/pkg/application/webview_window_options_test.go @@ -0,0 +1,105 @@ +package application + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestWebviewWindowOptions_Constants_Good(t *testing.T) { + assert.Equal(t, WindowStateNormal, WindowState(0)) + assert.Equal(t, WindowStateMinimised, WindowState(1)) + assert.Equal(t, WindowStateMaximised, WindowState(2)) + assert.Equal(t, WindowStateFullscreen, WindowState(3)) + assert.Equal(t, WindowCentered, WindowStartPosition(0)) + assert.Equal(t, WindowXY, WindowStartPosition(1)) + assert.Equal(t, BackgroundTypeSolid, BackgroundType(0)) + assert.Equal(t, BackgroundTypeTransparent, BackgroundType(1)) + assert.Equal(t, BackgroundTypeTranslucent, BackgroundType(2)) + assert.Equal(t, Auto, BackdropType(0)) + assert.Equal(t, None, BackdropType(1)) + assert.Equal(t, Mica, BackdropType(2)) + assert.Equal(t, Acrylic, BackdropType(3)) + assert.Equal(t, Tabbed, BackdropType(4)) + assert.Equal(t, SystemDefault, Theme(0)) + assert.Equal(t, Dark, Theme(1)) + assert.Equal(t, Light, Theme(2)) + assert.Equal(t, MacBackdropNormal, MacBackdrop(0)) + assert.Equal(t, MacBackdropTransparent, MacBackdrop(1)) + assert.Equal(t, MacBackdropTranslucent, MacBackdrop(2)) + assert.Equal(t, MacBackdropLiquidGlass, MacBackdrop(3)) + assert.Equal(t, MacToolbarStyleAutomatic, MacToolbarStyle(0)) + assert.Equal(t, MacToolbarStyleUnifiedCompact, MacToolbarStyle(4)) + assert.Equal(t, LiquidGlassStyleAutomatic, MacLiquidGlassStyle(0)) + assert.Equal(t, LiquidGlassStyleVibrant, MacLiquidGlassStyle(3)) + assert.Equal(t, WebviewGpuPolicyAlways, WebviewGpuPolicy(0)) + assert.Equal(t, WebviewGpuPolicyNever, WebviewGpuPolicy(2)) + assert.Equal(t, LinuxMenuStyleMenuBar, LinuxMenuStyle(0)) + assert.Equal(t, LinuxMenuStylePrimaryMenu, LinuxMenuStyle(1)) + assert.Equal(t, DefaultAppearance, MacAppearanceType("")) + assert.Equal(t, NSAppearanceNameDarkAqua, MacAppearanceType("NSAppearanceNameDarkAqua")) +} + +func TestWebviewWindowOptions_Constants_Bad(t *testing.T) { + assert.Equal(t, MacTitleBarDefault, MacTitleBar{}) + assert.Equal(t, MacTitleBarHidden, MacTitleBar{ + AppearsTransparent: true, + HideTitle: true, + FullSizeContent: true, + }) + assert.Equal(t, MacTitleBarHiddenInset, MacTitleBar{ + AppearsTransparent: true, + HideTitle: true, + FullSizeContent: true, + UseToolbar: true, + HideToolbarSeparator: true, + }) + assert.Equal(t, MacTitleBarHiddenInsetUnified, MacTitleBar{ + AppearsTransparent: true, + HideTitle: true, + FullSizeContent: true, + UseToolbar: true, + HideToolbarSeparator: true, + ToolbarStyle: MacToolbarStyleUnified, + }) + assert.Equal(t, NSVisualEffectMaterialAuto, NSVisualEffectMaterial(-1)) + assert.Equal(t, MacWindowLevelNormal, MacWindowLevel("normal")) + assert.Equal(t, MacWindowCollectionBehaviorCanJoinAllSpaces, MacWindowCollectionBehavior(1)) + assert.Equal(t, MacWindowCollectionBehaviorFullScreenAuxiliary, MacWindowCollectionBehavior(1<<8)) +} + +func TestWebviewWindowOptions_Constants_Ugly(t *testing.T) { + options := WebviewWindowOptions{ + Name: "main", + Title: "Main", + URL: "https://example.invalid", + HTML: "