forked from mirrors/gecko-dev
		
	 82527350b3
			
		
	
	
		82527350b3
		
	
	
	
	
		
			
			Added in mochi tests to validate that the C++ filename validation for taskbar tab shortcut paths works. Differential Revision: https://phabricator.services.mozilla.com/D199689
		
			
				
	
	
		
			72 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* Any copyright is dedicated to the Public Domain.
 | |
|    http://creativecommons.org/publicdomain/zero/1.0/ */
 | |
| 
 | |
| "use strict";
 | |
| 
 | |
| add_task(async function test_getTaskbarTabShortcutPath() {
 | |
|   // no exception generated for the following
 | |
|   ShellService.getTaskbarTabShortcutPath("working");
 | |
|   ShellService.getTaskbarTabShortcutPath("workingPath.ink");
 | |
| 
 | |
|   // confirm that multiple spaces aren't collapsed
 | |
|   ShellService.getTaskbarTabShortcutPath("working    path.ink");
 | |
| 
 | |
|   const invalidFilenames = [
 | |
|     // These are reserved characters that can't be in names
 | |
|     "?",
 | |
|     ":",
 | |
|     "<",
 | |
|     ">",
 | |
|     "|",
 | |
|     '"',
 | |
|     "/",
 | |
|     "*",
 | |
|     "\t",
 | |
|     "\r",
 | |
|     "\n",
 | |
| 
 | |
|     // No path manipulation allowed
 | |
|     "..\\something",
 | |
|     ".\\something",
 | |
|     ".something",
 | |
| 
 | |
|     // Windows doesn't allow filenames ending in period or a space
 | |
|     "something.",
 | |
|     "something ",
 | |
| 
 | |
|     // The following are special reserved names
 | |
|     "CON",
 | |
|     "PRN",
 | |
|     "AUX",
 | |
|     "NUL",
 | |
|     "COM1",
 | |
|     "COM2",
 | |
|     "COM3",
 | |
|     "COM4",
 | |
|     "COM5",
 | |
|     "COM6",
 | |
|     "COM7",
 | |
|     "COM8",
 | |
|     "COM9",
 | |
|     "LPT1",
 | |
|     "LPT2",
 | |
|     "LPT3",
 | |
|     "LPT4",
 | |
|     "LPT5",
 | |
|     "LPT6",
 | |
|     "LPT7",
 | |
|     "LPT8",
 | |
|     "LPT9",
 | |
|   ];
 | |
| 
 | |
|   for (const invalidFilename of invalidFilenames) {
 | |
|     Assert.throws(
 | |
|       () => {
 | |
|         ShellService.getTaskbarTabShortcutPath(invalidFilename);
 | |
|       },
 | |
|       /NS_ERROR_FILE_INVALID_PATH/,
 | |
|       invalidFilename +
 | |
|         " is an invalid filename; getTaskbarTabShortcutPath should have failed with it as a parameter."
 | |
|     );
 | |
|   }
 | |
| });
 |