aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit_tests
AgeCommit message (Collapse)Author
2016-09-25Space rotates hints (to make hidden hints visible).Stephen Blott
It is common for link-hint markers to be close togother, and overlapping. Here, `<Space>` rotates hint markers such that hidden markers become visible. For filtered hints we additionally require a modifier (because `<space>` on its own is already a token separator). The calculation of overlapping hints is quite expensive: O(n^2) in the best case and O(n^3) in the worst cast. The worst case is extraordinarily unlikely to arise in practice.
2016-04-18Cache content_scripts/vimium.css in chrome.storage.local.Stephen Blott
Previously, we had two different approaches. This seems like a simpler approach. We simply cache the Vimium CSS in chrome.storage.local (in the background page) and fetch it from there (in UI components). There is also a minor change in the we no longer cache the CSS in memory. This seems to be the right thing to do. Caching the CSS in memory consumes a small amount of memory. However, it can only speed up the fastest loads. It cannot speed up the first load -- which is likely the one that matters most. So caching the CSS in memory seems to make little sense.
2016-03-30Rename handlerStack constants.Stephen Blott
Problems: - The meanings of some of the Mode/handlerStack constant names is far from obvious. - The same thing is named different things in different places. This changes various constant names such that: - the names used in the handler stack and in the modes are the same. - ditto vis-a-vis DomUtils. Also, break out the core of the handler stacks' `bubbleEvent` method into a switch statements. This makes it more obvious that the cases are mutually exclusive.
2016-03-28Use image data for icons.Stephen Blott
This uses image data (instead of a path) for the page icon. It also only builds 19x19 and 38x38 icons, as per the chrome.browserAction.setIcon() documentation. This appears to fix a memory leak related to a recent Chrome regression (versions 49+). Fixes #2055.
2016-03-27Add test for extractQuery().Stephen Blott
2016-03-27Add test for escapeRegexSpecialCharacters().Stephen Blott
2016-03-27Add test for invokeCommandString().Stephen Blott
2016-03-26Add test for badly-formed exclusion regexp.Stephen Blott
2016-03-26Multiple minor tweaks.Stephen Blott
Some of this code is showing its age, so these are just a number of minor tweaks (to keep things clear, consistent and concise). Also, add a couple of tests (while we're at it).
2016-03-18Add Utils.makeIdempotent.Stephen Blott
The intention is to use this to clean up some of the initialisation sequences in the front end.
2016-03-17Tweaks for #2053.Stephen Blott
2016-03-17Simplify domReady handling.Stephen Blott
2016-03-17Move isEnabledForUrl to Frame.port.Stephen Blott
2016-03-05Key bindings; fix tests...Stephen Blott
... and fix two bugs: - not suppressing keyup event after keyChar matched in keydown. - we cannot check the passKeys keyChar in keyup because the key state has changed; so we track what the next keyup response should be.
2016-03-04Do not use standalone @.Stephen Blott
The styles guide says not to use standalone `@`. So this changes the occurrences I could find (with sed) to `this`. Occurrences within files with major outstanding PRs are omitted.
2016-02-21fix a crash of unit testsgdh1995
2016-02-16Use `for own ... of` instead of `for ... of`mrmr1993
2016-02-09BgUtils; move tabRecency to bg_tiles.coffee.Stephen Blott
Certain background-page utilities are actually shared, and are therefore best placed in place that reflects that. Here, tabRecency is moved to the new gb_utils.coffee in preparation for implementing a go-to-previous-tab command. In particular, it is no longer appropriate that tabRecency be embedded within the completion code. logMessage() from main.coffee is also a candidate for moving to bg_utils.coffee.
2016-01-31Add a basic log page; tweaks.Stephen Blott
This tweaks @mrmr1993's logging ideas discussed in #1629: - Do not generate log entries from the logging page itself. - Use the logger for *all* logging (including from `commands.coffee`, and from `bgLog`). @mrmr1993's original idea is 91fb337c9d92f6291ef42c55c4d29ca35b710203.
2015-09-10Don't decode javascript URIs on 46.0.2467.2 and latermrmr1993
The fix for Chromium issue 483000 landed in this version, so it is no longer necessary for #1611
2015-06-25Merge branch 'hud-iframe-input-with-store-all-settings'Stephen Blott
2015-06-20Add test that every option has a default value.Stephen Blott
This prevents issues like #1731 and is an (better) alternative to #1732.
2015-06-17Fix non-default front-end settings.Stephen Blott
(@mrmr1993: This is yet another approach to the Settings problem.) With the new Settings implemetation, settings which have a non-default value and which are not in synced storage (that is, they have not been changed since synced storage was introduced) are not currently accessible to content scripts. This commit makes such settings accessible via chrome.storage.local. Important: - There's a change to the established settings data model here. Previously, settings with default values were not stored; here, they are. This eliminates a considerable amount logic from Settings, but means that migrations will be required if default values are changed in future. (Other than type changes, have we ever changed a default value?) - There's also a change (bug fix?) to the behaviour when an affected setting is reset to its default value. Previously, the change would *not* have been synced (whereas all other changes are). Here, such changes *are* synced. The previous behaviour was inconsistent with the syncing behaviour of all other options changes. Note: - This isn't particularly well tested. It's being committed mainly just for consideration of the approach, initially.
2015-06-01Refactor and eliminate Sync object.Stephen Blott
2015-06-01Re-work unified settings.Stephen Blott
This is a minor re-working of #1705 from @mrmr1993. The main changes are: - Simplify initialisation logic. - Always initialise Settings immediately and automatically (ie. don't initialise Settings separately and manually in the background, content scripts, options and tests). - Get rid of addEventListener (it's only being used for on "load"). - Add Settings.use() in its place.
2015-05-29Make Settings explicitly use a cachemrmr1993
The Settings object used by the background page now uses 1 of 3 caches, depending on the context it is available in: * localStorage - in the background page * a copy of localStorage - in non-background extension pages (options.html, popup.html, etc.) * an empty object - in all other pages (where localStorage doesn't point to the extension's localStorage object). For any extension page which is *not* the background page, a copy of localStorage is used instead of true localStorage: * Once localStorage is updated by one background page, the others can only see the updated copy. - Pages with an updated cache can't tell which changes are new, and so don't know which postUpdateHooks to run. * By copying localStorage's contents into a new object, extension pages can still access settings synchronously. - This is especially important to options.html and popup.html; they will not work without it.
2015-05-29Move settings.coffee from background_scripts/ to lib/mrmr1993
2015-05-29Only perform settings migration in the background pagemrmr1993
2015-05-29Move registration of postUpdateHooks to the corresponding source filesmrmr1993
This completely decouples settings.coffee from all other background source files, so that it can (eventually) also be used in the frontend.
2015-05-29Remove all direct calls to Sync, stop exporting itmrmr1993
This stops Sync from being referred to from anywhere except settings.coffee and settings_test.coffee.
2015-05-29Combine sync.coffee with settings.coffeemrmr1993
2015-05-27Custom-only: single-line completions for custom search engines.Stephen Blott
2015-05-18Merge branch 'vomnibar-insert-history-with-tab'Stephen Blott
Conflicts: background_scripts/completion.coffee
2015-05-17use a less brittle approach to decoding URIs (fix tests).Stephen Blott
2015-05-17TabToOpen: respect trailing options when extracting query terms.Stephen Blott
A custom search engine like this... i: https://www.google.ie/search?q=%s&num=30&newwindow=1&biw=1918&bih=1015&tbm=isch Google image search Should not match a URL like this... https://www.google.ie/search?q=bbc+sport
2015-05-13Domain completer: no completions for "w ".Stephen Blott
If the input is "w ", the user is going for something like "w query terms" (a custom search engine). So the domain completer should not offer completions if the user has finished the first word.
2015-05-11Merge branch 'search-engine-completion-v5'Stephen Blott
2015-05-10Search completion; refactor searchEngineCompleter.Stephen Blott
This revamps how search-engine configuration is handled, and revises some rather strange legacy code.
2015-05-09Search completion; tweaks and tests.Stephen Blott
2015-05-09Search completion; refactor SearchCompleter activation.Stephen Blott
2015-05-08Search completion; fix DOM tests.Stephen Blott
2015-05-08Search completion; fix unit tests.Stephen Blott
2015-05-06Fix 889decf6c183a185022c22f21143e5436381b942 for tests.Stephen Blott
2015-05-05Better javascript: test case.Stephen Blott
Fixed as per @mrmr1993's comment here: https://github.com/philc/vimium/commit/1a1b8ec05aaca867261a3556317697d8cdaf7b6c
2015-05-05Fix javascript: URIs.Stephen Blott
This is @mrmr9393's suggestion from #1636. It mimic's Chrome's behaviour when a javascript: URI is enetered into the omnibox (or clicked). Fixes #1611.
2015-05-04Search completion; tweak scoring and synchronization.Stephen Blott
2015-05-02Rename SearchEngineCompleter to CustomSearchEngineCompleter.Stephen Blott
The name "SearchEngineCompleter" is more appropriate for completions actually delivered by a search engine. Also, what was SearchEngineCompleter is usually referred to as "custom search engines" elsewhere.
2015-04-24Add chrome.webNavigation stubs to fix testsmrmr1993
2015-04-24Get incognto state directly from chrome.extensions.inIncognitoContextmrmr1993
2015-04-12Add failing test case.Utkarsh Upadhyay