How to test your App
Testing Practices
The Overwolf team will review your app when you submit it for the first time, as well as whenever you would like to update it.
Some tests may change depending on your app, as sometimes testing is more effective with specific tests than with the generic ones.
In this article we will share how our testing process works, what we're focused on, and what you should focus on when polishing up your app for submission. Please don’t hesitate to ask us questions over Slack or via email: developers@overwolf.com
App Manifest
Consistent UID
Make sure that the author and app name are identical in every version. Changes in these parameters will change the UID of your app and cause issues, so make sure that they remain consistent through every update.
Validate your manifest
Make sure to validate your manifest.json syntax:
- Copy the contents of the app’s manifest.json and paste it in jsonlint.com.
- Press the "validate" button in jsonlint.com (If you're seeing "valid json", it's clear).
- Make sure you have no errors reported.
Validate the schema
Ensure that your manifest.json is consistent with our schema:
- Copy the contents of the app’s manifest.json and paste it under "Input JSON:" in jsonschemavalidator.net.
- Copy the contents of our schema and paste it under "Select schema:".
- Make sure you have no errors and that you see a green checkmark with the text "No errors found. JSON validates against the schema".
Minimal Overwolf supported version
Examine your app's Overwolf minimal version and make sure that it is in line with your app's required features.
- If a recent version added a new API/fixed a bug that you require, make sure that it is set to that version (or later)
- Make sure that this minimal required version is fully rolled out to all users before releasing!
Verify correct Advertisement flags
"block_top_window_navigation":true
– Means that whenever app users click on an ad, it will open the link in a new window."popup_blocker":true
– This flag prevents ads that will try to create a popup for the user without the user’s consent."mute":true
- Mute sounds in window.
Verify the 'launcher_icon' property
- Make sure
"launcher_icon": "icon.ico"
appears in the “meta” object,icon.ico
can have any name as long as the icon exists in the app's opk file. - Check that the
icon.ico
file exists in your app folder/opk and its size is smaller than 150KB. - Make sure that you have the following resolutions for it:
16x16, 32x32,48x48, 256x256
.
Verify the 'icon' and 'icon_gray' property
- Make sure
"icon": "IconMouseOver.png"
and"icon_gray": "IconMouseNormal.png"
appear in the “meta” object,IconMouseOver.png
andIconMouseNormal.png
can have any name as long as the icons exist in the app's opk file. - Check that the
IconMouseOver.png
&IconMouseNormal.png
files exist in your app folder/opk and their size is smaller than 30KB. - Make sure that both .png files are
256x256
in resolution size.
Verify game_targeting flag existence
Verify correct launch_events
- Make sure that your app only launches with the games it interacts with
- If your app is set to
LaunchWithOverwolf
, make sure:- It does not open any visible windows unless a game was opened
- OR The user has to explicitly opt-in for this behavior, and can opt-out at any moment
Windows
Resolution Compatibility
-
Before testing, DPI should be set to 100% and window resolution should be 1920 x 1080.
-
Change your screen resolution to the following settings and make sure that the app window stays within the borders of your screen:
- 1366 x 720 – 100 DPI
- 1366 x 768 – 100 DPI
- 1920 X 1080 – 125 DPI
- 3840 X 2160 – 150 DPI
Window states
The following test should demonstrate how your app behaves in-game when in different window states:
- Launch the game your app supports and test the app in full-screen (game window), make sure everything is in place.
- Change to windowed mode and make sure that everything is still in place.
Window behavior when "out of focus"
Overwolf only displays overlays in a game when the game is in focus. That means that whenever your game is alt+tabbed or minimized, no app window should appear anywhere.
For the following test, you should launch the game your app supports and make sure that the app launched correctly. Then, you should Alt + Tab out of the game and make sure that your app window does not show on desktop.
When you alt+tab back to the game, the app should work normally.
Overlay
In-Game Behavior
Test preconditions: The user is now running the game your app supports.
- Open the app window with your designated hotkey and make sure the overlay appears properly.
- Test general app functionality in-game and ensure your features work.
- Click the app window in spots where clicks going through to the game would have an effect. For example, click an app button which covers an in-game menu and make sure your clicks only affect the app layer and never that menu.
- Any in-game browser links must be opened in overwolf's browser, or if they must be opened in the user's default browser, first prompt a warning to the user and let them know.
Hotkeys
General functionality
-
Use hotkey to launch App and ensure it launches properly.
-
Use hotkey again to minimize your App.
-
Change your app's designated hotkey and make sure the change appears in settings.
-
Use changed hotkey to launch App and ensure it launches properly.
-
Use changed hotkey again to minimize your app.
-
Allow users to change hotkey combinations from inside your app’s settings panel by automatically directing the user to the Overwolf settings page as suggested in our best practices Hotkeys segment. More information about hotkeys can be found in the manifest.json and overwolf.settings API pages – Make sure that when it’s done, the new hotkey is updated automatically in your app without needing to re-launch the app.
-
Launch your app using the dock icon while in-game. The dock icon must provide some form of functionality to the user.
Test mid-game installation
Preconditions: Uninstall your app to perform the following test.
-
While in-game, open the Overwolf Appstore and install the app, or just use an opk.
-
Use hotkey to launch app and see whether it successfully opens.
-
Use hotkey again to minimize the app.
-
Change the designated hotkey and use it again to launch the app.
-
Used the changed hotkey again to minimize the app.
-
Whenever a user changes their hotkey – make sure that your app changes both functionality and UI.
Desktop
Desktop app Behaviour
-
Launch your App while in desktop, test that the app window appears in 30 milliseconds or less - but it's alright if it shows up and then displays a loader until it's ready for use.
-
Test your app's desktop functionality and features.
-
Close Overwolf and launch your app using the desktop icon.
-
Verify all windows are close upon exit, as well as all app-related processes in http://localhost:54284 (except those that are designed to be background processes).
Game specific apps
If your app supports a specific game only, make sure it runs when you launch that game and doesn't for others.
Performance
Memory & CPU Usage
Preconditions: Open Overwolf task manager as well as the Windows task manager.
- Use your app's basic functionality, ensure it doesn't hang, lag or stops responding.
- Use the app while checking the Overwolf task manager. App memory usage should rise and fall, if it doesn't drop back down after rising - the app might have a memory leak.
- Click the performance tab in Windows Task manager, keep an eye out for spikes in CPU, memory or network usage while using your app.
Dock icon size
Dock icons should be .png format files, sized 256×256 pixels and weighing under 30KB. This is true for both greyscale and full color icons.
Internet access
-
Disconnect from the internet and verify your app still launches normally.
-
When offline, make sure your app displays a “check your internet connection” type message.
-
If the app requires an internet connection to function then it should be clarified for users in the app's window.
-
You can detect whether your app is offline or not in a couple of ways. The most straightforward way is to use the navigator.onLine property ,but we recommend to implement more reliable tools, like this one for example.
Ads
In order to get test ads enabled on your app, please follow these steps:
- Open app
- Open the developer console (Ctrl + Shift + I)
- Paste
localStorage.owAdTestAd = true
into the console - Press the "Enter" key
- Press F5 to refresh window
- The Relevant ads will appear
- If no ads are showing up, please delete the BrowserCache folder located at AppData\Local\Overwolf\BrowserCache. In Addition, check the "Disable cache" option in the Network tab of the devtools. Finally, relaunch the app.
Testing Ad visibility
-
Launch your app.
-
Go over your app screens and look for the Ad containers, ensure Ads appear properly.
Ad click functionality
-
Launch your app.
-
Click on any element that is hiding ads and make sure the ads do not open and that your element functions as intended.
-
Click an Ad, it should open the link in a new browser window external to your app.
-
Click on the ad 5 times, make sure five different browsers are launched without crashing Overwolf or harming your app's performance.
Ads are not hidden
Open Overwolf's developer tools by pressing ctrl + shift + i, and look at the console. No ad processes should be visible if no ads are displayed on screen.
Ads remove and refresh
Ads should close when your app window is minimized.
-
Open
http://localhost:54284/
in browser. -
Launch your app, navigate to a screen where ads are presented.
-
Close the app using a hotkey or manually.
-
No ad process should be found in the localhost.
Pre-Release
App's opk file doesn't warn for any viruses
Before sending any opk file for our approval, make sure that virustotal.com doesn't warn about any viruses for it. Any opk's which virustotal warns about will not be tested.