-
Notifications
You must be signed in to change notification settings - Fork 7.6k
Brackets Smoke Tests
Brackets has a pretty good automated test suite that you can run from Debug > Run Tests, but that doesn't always cover issues with the overall UI and intetegrated functionality, or visual/layout issues that are only obvious if you're actually looking at the product. This is a set of manual tests intended to make sure we haven't broken the basic overall workflows of the product. The intention is to keep it quick--if it takes more than 5 minutes on a given platform it's too long.
There are also Brackets server smoke tests.
If you have trouble running through it or something is unclear, please post to the brackets-dev mailing list.
- Make sure your
git status
is clean and your user extensions folder andsrc/extensions/dev
folders are both empty (git status will not tell you about these folders). - Quit and relaunch Chrome if it's open (so it's not in remote debugger mode).
- If you've run the smokes previously, revert any changes you might have made in
brackets/test/smokes/citrus completed
. - Delete your cache folder (Mac:
~/Library/Application\ Support/Brackets/cef_data
, Win:%appdata%\Brackets\cef_data
, Linux:~/.config/Brackets/cef_data
). - Move your state.json file aside (rename it to state.json.bak or something if you want to get it back). (Mac:
~/Library/Application\ Support/Brackets/state.json
, Win:%appdata%\Brackets\cef_data
, Linux:~/.config/Brackets/state.json
) - Disable any 3rd party extensions you've installed (see Extension Locations)
-
Launch Brackets. Verify that the Brackets "Getting Started" folder is visible in the project panel and its index.html file is opened automatically and there is a single pane showing in the main view.
-
File > Open Folder and browse to the Brackets source folder.
-
Click on the triangle next to the project name. The dropdown should show the "Open Folder..." option, then the "Getting Started" folder.
-
From the Finder/Explorer, create a new folder called "watch". Observe that the new folder appears in the file tree in a closed state.
-
From the Finder/Explorer, rename the "watch" folder to "watcher". Observe that the folder is renamed in the file tree and remains in a closed state.
-
From the Finder/Explorer window, copy the README.md file from the project from into the watcher folder. Confirm that NO CHANGES take place in the file tree.
-
Expand the "watcher" folder in the project tree and observe the copied README.md file. From the Finder/Explorer, delete the copied README.md file. Observe that the copied file is removed from the project tree and that the watcher folder remains expanded.
-
From the Finder/Explorer, delete the watcher folder and observe that it is removed from the file tree.
-
Switch back to the "Getting Started" folder using the project dropdown, verifying that it switches back to the previous project and shows its index.html.
-
Switch back to the "brackets" folder using the project dropdown.
-
Expand some folders in the brackets project, enough that it has to scroll.
-
Scroll around in the folder area. Verify that the shadows look right (appears at top when not scrolled all the way to the top) and there are no visual glitches.
-
From the Finder/Explorer window, drag the
brackets/test/smokes/citrus completed
folder onto Brackets. In the Project panel, verify that the folder opened and it contains "css" and "images" folders and an "index.html" file. -
From the Finder/Explorer window, drag the
brackets/test/smokes/citrus completed/index.html
file onto Brackets. Verify that the file is opened, selected, and added to the working set. -
File > New
-
File > Save, name the file
temp.js
in the current project. Verify that the name in the working set and title bar changes totemp.js
and the mode in the status bar changes to "JavaScript". -
Type the following code
var foo = ""; function add(a, b) { return a+b; } foo.
-
Verify
String
method code hints onfoo
-
Replace the last line with
add(
-
Verify that the parameter hint
Object a, Object b
appears withObject a
in boldface -
Type
5, 10);
and press enter -
Type
add(
-
Verify that the parameter hint
Number a, Number b
appears with theNumber a
in boldface -
In the project tree, right-click on
temp.js
and choose "Rename". Rename the file totemp.txt
. Verify that the name in the working set and title bar changes, the code coloring disappears and the mode changes to "Text". -
In the project tree, right click on
temp.txt
and choose delete (when prompted discard changes) -
Open the OS Trash/Recycle Bin and confirm
temp.txt
was deleted -
Verify that index.html is now current file. Move mouse over the name of the source of an
<img>
tag (e.g. "images/events.jpg" on line 33). Verify that Hover Preview of the image is displayed properly with the width and height. -
Set the cursor in the
<body>
tag immediately before the>
. -
Enter a space. Verify that a list of attribute hints pops up and you can navigate the list with up/down arrow key.
-
Hit Esc key to dismiss the code hints list, then delete the space so the cursor is after the "y" of "body".
-
Hit Cmd/Ctrl-E. Verify that it shows a single body rule and that everything is laid out properly.
-
With
View > Themes...
, change the theme from Brackets Light to Brackets Dark (or vice-versa, depending on what your standard theme is). Make sure that both the host editor and the inline editor look correct, then switch back to your normal theme. -
In the native shell menu, choose View > Increase Font Size. Verify both the host and inline editors font size increases. The inline editor should not show a vertical scrollbar.
-
Click the lightning bolt in the upper right. If you moved your state.json file, you'll get an info dialog explaining how live preview works. Hit OK.
-
You should see the page load in Chrome.
-
Back in Brackets, on line 26, put the cursor after "A new". Verify that the box containing that text and the image to the right is highlighted (with a blue outline around it) in the browser.
-
Type
and totally <em>AWESOME</em> local
; let the<em>
tag autocomplete (you can arrow or click select after the</em>
to typelocal
). Verify while typing an incomplete tag<em
that the gutter and the live preview lightning bolt icon show a pink error color. Verify that the changes appear in the browser as you type, and verify that AWESOME is italicized (and nothing else is). -
Undo the file back to a clean state. Verify that as you undo, the HTML preview continues to match the current state of the document, and ends up looking the same as when you first opened the file.
-
Edit the background color for the
tag in the inline editor (#D90 is a nice color). Verify that the color changes in Chrome as you type. Also verify that the CSS file is added to the working set with the dirty bit set. -
Hit Cmd/Ctrl-E. Verify that the inline editor closes.
-
Put the cursor after the
<a
in one of the navbar items and hit Cmd/Ctrl-E to open another inline editor. -
Scroll up and down in the outer editor. Verify that the inline editor scrolls properly with the editor.
-
Resize the window. Verify that the rule list moves properly and there are no visual glitches.
-
Hit Esc to close the inline editor.
-
Type
class="huge"
, place the cursor inhuge
and hit Cmd/Ctrl-E. The inline editor should open with a message saying there are no matching rules, and focus should be on the New Rule button. -
Click the New Rule button and choose desktop.css. A blank
.huge
rule should appear in the inline editor. Typefont-size: 30px;
and verify that the navbar item gets huge. -
Switch to desktop.css and verify that the rule you added is at the end of the file.
-
Choose File > Extension Manager. In the search box, type "emmet" and click Install on the Emmet extension. Verify that it's properly installed. Close Extension Manager.
-
Verify the Emmet menu was added
-
Quit the app. Verify that you get a "save changes" dialog for any CSS files you edited through the inline editor, and choose to discard the changes.
-
Restart the app. Verify that the "citrus completed" project shows in the sidebar, and that the working set and current editor are showing the same files as when you quit. Also verify that the changes you had previously made were reverted (
git status
in the smokes folder should show clean). -
Close All Files (File > Close All) and verify that all files are closed
-
Click on index.html in the file tree and verify that index.html is open but not added to the working set
-
View > Split Vertically and verify a second pane is created and focused. index.html should still be open in the pane on the left
-
Expand the css folder in the file tree and click on desktop.css to open it and verify that it opens in the right pane but is not added to the working set
-
drag the splitter between the two views to the left and verify there are no visual glitches and the editor resizes appropriately
-
switch back to the brackets project and back to citrus and verify the splitter is where it was before
-
drag the splitter to the right and verify there are no visual glitches and the panes resize appropriately
-
view > split horizontal and verify that the splitter jumps to the middle horizontally and there are 2 panes on top of each other
-
click in the top pane to activate it and verify the visual styles on the pane are correct 1 Expand the images folder and double click events.jpg to open it to the top working set
-
click in the opposite pane and double click specials.jpg open it to the bottom working set
-
drag the splitter up and down and make sure there are no visual glitches and panes resize appropriately
-
drag events.jpg to the bottom working set and verify that dragging between working sets works and there are no visual glitches and that specials.jpg is still the current file
-
drag the current file (specials.jpg) to the to the top working set and verify that you can drag up into an empty working set and it's still the current file
-
drag events.jpg to the top working set, drop it then drag it back down and verify that you can drag down into an empty bottom working set.
-
drag events.jpg down into the file tree and verify that you cannot drop it
-
switch back to brackets, split it and open enough files in each working set so that scroll bars are necessary
-
make sure that you can scroll each view from top to bottom without any issues
-
drag a file from the bottom working set up into the top working set and verify that scrollbars appear on both views while dragging
-
grab the first file in the working set and verify you can drag it to the last position in the working set (scrolling will be necessary)
-
grab the last file in the working set and verify you can drag it to the first position of the working set (scrolling will be necessary)
-
grab any file in the top working set and verify you can drag it to the last position in the bottom working set (scrolling will be necessary)
-
grab any file in the bottom working set and verify you can drag it to the first position in the top working set (scrolling will be necessary)
-
grab any file in the bottom working set and verify you can drop it anywhere in the top working set
-
grab any file in the bottom working set and gesture drag it down to the last position of the top working set (you'll need to drag up into the top working set then drag down to scroll the list)
-
grab any file in the top working set and gesture drag it to the first position of the top working set (you'll need to drag down into the bottom working set then drag up to scroll the list)
-
close are reopen brackets project
-
drag the file after the current file in the working set in the working set to the opposite working set
-
Ctrl+Tab to verify that the file you just dragged is still next MRU list