Jesper Dam [Mon, 6 Jan 2014 12:59:25 +0000 (13:59 +0100)]
Fix issue #326: correct handling of shift key
When shortcut modifiers (modifier keys such as CTRL, which do not participate in
composing character input) are pressed, we try to suppress the keypress
event, as browsers do not reliably generate it. This means that
subsequent key events are decoded only based on the keydown event.
Due to a type error (comparing a string to a number), shift was
mistakenly treated as a shortcut modifier, preventing text input which
relied on shift, such as _ and %, from being generated.
Solly Ross [Tue, 17 Dec 2013 23:00:57 +0000 (18:00 -0500)]
Support 'requires' Line in Test Runner
If the files passed to the '-t' option are all '.js' files (or
the 'run all tests' option is used) and the '-i' option is not
passed, all tests will be search for the string
'require local modules: '. Only the first instance of this string
will be used. Following the colon should be a list of either local
modules (i.e. files in the '../include/' folder relative to the
test runner's directory, without the '.js' extension) or paths
to other Javascript files. The list of modules and/or files should
be comma-separated. These files will then be included in the generated
HTML file for the appropriate tests as if the '-i' option had been used.
Solly Ross [Tue, 17 Dec 2013 23:00:45 +0000 (18:00 -0500)]
Support Running All Tests
Now, if the '-t' option is passed but no tests are listed,
all tests in the same directory as the launcher will be run.
A file is considered a test if it matches the RegEx
/^test\.(\w|\.|-)+\.js$/ (for those who cannot read PCRE,
that's roughly 'test.*.js').
Solly Ross [Tue, 17 Dec 2013 22:56:18 +0000 (17:56 -0500)]
Support Skipped Tests and Fix JSHint Issues
The test runner now will not break when Mocha skips tests,
and will properly report them. Additionally, several JSHint
warnings were fixed, and a `--debug` option was added to see
output from the provider.
Solly Ross [Wed, 4 Dec 2013 20:39:20 +0000 (15:39 -0500)]
Add support for Outputting Autogenerated Test HTML
This commit introduces two flags, '-g' and '-o' to
the `run_from_console.js`. Both flags do not run
the tests. Instead, deal with the autogenerated
HTML. The former outputs the paths to the autogenerated
HTML temp files, and then pauses the program until Ctrl-C
is pressed (or SIGINT is sent). The latter outputs the
generated HTML for each files to STDIN with the names
of the tests to which they belong.
Solly Ross [Tue, 3 Dec 2013 20:33:34 +0000 (15:33 -0500)]
Support Running Mocha Tests from the Console
Previously, the only way to run the Mocha tests
(in 'test.*.js') is to write a web page to wrap
them (or use a provided one), and then load that
file in a browser.
This commit introduces a series of files to allow
you to run the Mocha tests from the command line
instead.
Normally, Mocha tests can be run from
the command line anyway. However, since this
project was designed to work in web browsers
and not node, the code doesn't contain the
proper `require` calls, nor does it contain the
proper `module.exports` declarations. Additionally,
some of the code is dependent on having a browser
environment.
To overcome these issues, a headless browser environment
is used. The command file introduced in the commit,
`run_from_console.js`, can use one of two environments:
ZombieJS, a pure-javascript headless browser simulator, or
SpookyJS/CasperJS/PhantomJS, an actually WebKit-based
environment.
Because the environment-dependent code is separated
out in to different files ('run_from_console.zombie.js'
and 'run_from_console.casper.js'), the program can be
safely used if only one of the supported environments
is installed.
Additionally, the command will automatically generate
HTML and inject the required tests if there is no
pre-existing HTML file (although you can still use
pre-existing HTML files if you want to).
The required NPM modules for the base program are:
- commander
- ansi
- mocha (must be installed locally for the HTML files to use)
- chai (must be installed locally for the HTML files to use)
- temp
For Zombie, you need:
- zombie
- q
For Casper, you need:
- casperjs (must be installed locally in order to work properly)
- phantomjs
- phantom
- spooky
In both cases, the 'files' options should be a comma-separated list of
files. The first case runs pre-existing HTML files. The second case
generates HTML files to run the specified Mocha tests, and injects
the requirements specified as well.
Additionally, there are extra arguments that apply to both forms:
'-a' can be used to print all test results, not just the failures,
'-c' may be used to force color to be enabled (when outputting to
a pipe, such as when `less -R` is in use), and '-e' is used to
set the environment. Use the '-h' or '--help' options to see
a detailed description of all options, and their long-form versions.
Takashi Natsume [Mon, 28 Oct 2013 12:02:30 +0000 (12:02 +0000)]
Adds support for secure attribute on token cookie
This patch adds support for the secure attribute on token
cookies (sent by nova-novncproxy). If the https is used
to transfer the cookie, the secure attribute is set thus
restricting server requestes to secure conections only.
This should prevent man-in-the-middle attacks.
samhed [Wed, 9 Oct 2013 09:35:43 +0000 (11:35 +0200)]
Fix so that parentheses can be written from iOS devices.
* changed the type of the input field (which is used for bringing up the
on-screen keyboards on touch devices) from email to text
* when typing in an input field of type email the user is not allowed to
write parentheses on iOS devices, the keys are disabled.
* tested on iOS 6, iOS 7 and Android 4.3.
samhed [Fri, 30 Aug 2013 13:41:46 +0000 (15:41 +0200)]
Added a new file for the key symbols, using the well recognized names for the constants from X11:
* The list is found in /usr/include/X11/keysymdef.h
* I did only include the most common symbols for now..
* On low resolution devices the status text is now justified to the left
button group instead of centered.
* On low resolution devices the padding towards the edges of the screen of
the left and right button groups are now removed.
* Since the status_bar was merged into the control-bar the actual status_bar
element became redundant and was therefor removed.
* Improved the style of the control-bar when there is an error or a warning.
* Implemented a fix so that vnc_auto.html works as intended with the improved
screen real estate patch.
Samuel Mannehed [Tue, 25 Jun 2013 15:45:43 +0000 (17:45 +0200)]
to make double clicking on touch devices easier a double click is now triggered when two mouse clicks occur within 500 milli seconds and closer than 50 pixels together
- Update both the submodule and the swf build. The submodule now
contains the unobfuscated source for swfobject.js which should make
websockify more DFSG compliant.
- Remove Hixie support. iOS 6 now includes HyBi support which means
there is no remaining platform that needs Hixie.
Will Rouesnel [Mon, 22 Apr 2013 10:07:20 +0000 (20:07 +1000)]
Add default port logic to include/ui.js
Correctly identifies the use of http/https and forces the value of port to 80 and 443
respectively, as in this situation window.location.port is blank.
This is patch includes the same changes as made in vnc_auto.html
FBU.bytes must be set before return false to indicate that the FBU
header has been read. If not set then "if (FBU.bytes == 0) { ..}"
in framebufferUpdate will be entered and the copyrect header will
be interpreted as a new FBU leading to a "unsupported encoding"
disconnect error.
Will Rouesnel [Sat, 13 Apr 2013 08:45:56 +0000 (18:45 +1000)]
Detect port properly in vnc_auto.html when used on port 80 or 443.
Browsers (such as Chrome) don't report port numbers in window.location.port when
used on standard ports such as 80 and 443. This causes vnc_auto.html to not
automatically find the port as it should.
This simple change checks if window.location.port is blank, and sets port as
appropriate from the name of the protocol in use.