2726 Commits

Author SHA1 Message Date
Adrien Destugues
2521f8ea39 Convert BufferTest to cppunit. 2014-10-22 11:11:55 +02:00
Adrien Destugues
55935df47d Convert AreaTest to cppunit. 2014-10-22 10:26:37 +02:00
Adrien Destugues
d21b5a07e6 AreaTest: style fixes. 2014-10-22 10:12:24 +02:00
Adrien Destugues
9bf4e99477 BUrl: IDNA ToUnicode and ToASCII conversions.
* Since DNS are normally restricted to ASCII, the use of UTF-8 in domain
names is implemented using a "punycode" encoding.
* The request to the DNS server must be sent with the ASCII
representation of the domain name, however the Unicode one should be
used for user-visible parts.
* ICU provides an implementation of the conversion, which we use here.
* Conversion is currently done in-place and modifies the BUrl object
(this is similar to UrlEncode/UrlDecode).
* Adjust existing IDN test to make use of these methods. It's passing
now.
2014-10-21 14:43:13 +02:00
Adrien Destugues
d341a585ae Add more tests for BMessageFormat.
* Negative and null values, big values, thousands separators (in
different languages), string with no format, non-printable and non-utf8
charcaters, format not using # for the number.
2014-10-21 12:21:50 +02:00
Adrien Destugues
c06fd79574 Chart: fix endianness swap.
* This is most likely dead code currently (it is used only when the
framebuffer is big endian, and the the cpu is little endian)
* Fixes a warning.
* Can't confirm if B_SWAP_INT32 is really supposed to swap the value
in-place, or if this is a bug in Chart. Probably the latter.
2014-10-21 11:53:22 +02:00
Adrien Destugues
6da9451eba UrlTest: cleanup IDN tests. 2014-10-21 11:31:47 +02:00
Michael Lotz
24e159e1ac btreeTest: Revive test for BPlusTree implementation.
* Update pseudo cache with minimal set of block cache API.
* Update Inode, Journal and Volume stubs to current API.
* Add stubs for remaining VFS functions.
* Extend tests to also call BPlusTree::Validate() and bail on errors.
* Change duplicate tests to fill in the same value. While this isn't
  strictly allowed, the tree validation can't work unless the values
  match up.
* Lots of coding style cleanup, but much more should still be done...

The tests run through without errors.
2014-10-21 00:24:45 +02:00
Michael Lotz
9656eef895 libkernelland_emu: Fix wrong return in ModuleList::AddModule(). 2014-10-21 00:08:48 +02:00
Michael Lotz
04ed6105f1 libkernelland_emu: Fix missing using namespace std for GCC4. 2014-10-21 00:07:16 +02:00
Michael Lotz
893367cf30 libkernelland_emu: Sync _rw_lock_{read|write}_unlock API.
The threadsLocked parameter was removed from the kernel API.
2014-10-21 00:04:24 +02:00
Michael Lotz
4101aaedc7 libkernelland_emu: Remove deleted scheduler.cpp from build.
The file was removed in hrev47484, but the Jamfile wasn't updated.
2014-10-21 00:00:54 +02:00
Adrien Destugues
980b1bd045 Add more tests for the DateTimePatternGenerator
There are unexpected results in some cases, with the clock switching to
12 hours format even though the locale is set to use 24 hours.
2014-10-20 17:23:24 +02:00
Adrien Destugues
fc1d09374e MessageFormat: Add test for Russian and fix Polish ones. 2014-10-19 11:49:55 +02:00
Adrien Destugues
77342b3ad8 Chart: clear view when switiching to BDirectWindow
Even when BDirectWindow is used, the back buffer data can be copied to
the front buffer. This happens when resizing or moving the window, and
when moving the cursor above it.

Since Charts does not touch the whole window when redrawing (it only
erases previous stars and draws new ones) this led to the last frame
drawn on the back buffer to stay visible until stars erased it.

Clearing the back buffer view with the current "sapce color" makes this
much less visible.

Fixes #96.
2014-10-15 09:22:41 +02:00
Adrien Destugues
64bda0cc91 Add missing error check in BMessageFormat
* Avoids a crash when an invalid format pattern is used
* Add tests exercising this with various badly formatted patterns.
2014-10-13 09:07:53 +02:00
Adrien Destugues
26b0a53d12 Add parsing support to BTimeFormat. 2014-10-09 13:35:23 +02:00
Adrien Destugues
961fdd8cc3 BMessageFormat: parse the pattern at construction
* Instead of parsing the pattern everytime Format() is called, parse it
only once when the object is created.
* Adjust all callers to make use of the feature and reuse the instance
as much as possible. This also allows calling B_TRANSLATE only once
instead of everytime the formatting needs to be done. We use either a
static instance (when the message pattern is constant) or a field (when
it is not known to be constant).
* Since the BMessageFormat instances are now reused, add locking to
avoid race conditions (ICU itself is thread safe, but the format pattern
is recreated when the locale is changed)
2014-10-08 15:12:48 +02:00
Adrien Destugues
824cb460ac DateTimeFormat: handle custom 24 hours clock.
The "j" format pattern selects a 12 or 24 hours clock automatically
depending on the locale, but it doesn't work when the format is forced
in the locale preflet or through the BFormattingConventions API. So we
manually pick either K or H depending on that setting.
2014-10-08 11:36:52 +02:00
Adrien Destugues
97d07c8af2 Add API for parsing dates. 2014-10-07 17:40:18 +02:00
Adrien Destugues
090a0d7686 Add an API to get month names. 2014-10-07 16:08:22 +02:00
Adrien Destugues
b16923f79f Add tests for BDateTimeFormat with custom formats. 2014-10-07 13:07:06 +02:00
Adrien Destugues
4a3a474224 Reimplement BDateTimeFormat using ICU support
* Avoid hardcoding the format to "date, time"
* Allows using DateTimePatternGenerator to create custom formats from a
set of fields.
2014-10-07 13:06:40 +02:00
Adrien Destugues
0da7796e6c Add BMessageFormat class.
This can be used to format complex messages properly. It moves the
complexity of handling plural forms, gender, and anything else needed
into the localizable string, rather than hardcoding it in the code.

This moves the difficulty of handling these things properly to people
doing translations, rather than relying on developers to do it.

Fixes #10755, but our localization must now be updated to make use of
the feature.
2014-10-07 08:51:23 +02:00
Adrien Destugues
699ddf447c DateFormatTest: fix after ICU upgrade
* Timezone names have changed. Test the medium time format which doesn't
include them, as we aren't forcing a specific one.
* French date format also changed to use 4 digit year name.
2014-10-07 08:49:45 +02:00
Adrien Destugues
fe86832391 Put liblinprog after libstackandtile
Otherwise some symbols go missing...
2014-10-06 17:43:21 +02:00
Adrien Destugues
a166264bf3 test_app_server: use libstackandtile.
We build a static lib for it, so we may as well use it.
2014-10-06 17:32:53 +02:00
Adrien Destugues
df4a02e0fa Fix initialization of BTimeUnitFormat
* The default constructor must configure it for the default locale
* Fix uptime not showing in AboutSystem
* Add a testcase for this
2014-10-02 10:23:31 +02:00
Adrien Destugues
9581e328bd Move geolocation test to the shared kit tests.
* Fix the build.
2014-10-02 08:27:44 +02:00
Adrien Destugues
9577c31bfe Convert BTimeFormat tests to cppunit. 2014-10-01 18:23:54 +02:00
Adrien Destugues
03b2550ef1 Move time formatting to BTimeformat.
* Harmonize API for all B*Format to take an output BString by reference
as the first parameter,
* Move the FormatTime methods from BLocale to BTimeFormat
* Adjust all callers for BTimeFormat, BTimeUnitFormat and
BDurationFormat.
2014-10-01 18:13:35 +02:00
Adrien Destugues
cedd1e158b Add tests for BDurationFormat and BTimeUnitFormat. 2014-10-01 16:29:13 +02:00
Adrien Destugues
48ea56bf32 Interface Kit tests: add test for BTextControl.
* Only tests very basic functionality, and size of the class, which must
not change for BeOS compatibility.
* Also add "manual" test for disabled and invalid controls (just check
it looks right)
2014-10-01 12:12:14 +02:00
Adrien Destugues
b4a3be8e2f Jamfile missing from previous commit. 2014-09-30 16:09:13 +02:00
Adrien Destugues
afd5ec11d2 Add setters to BDate and BCalendarView
* BDate setters don't perform any validation, use with caution.
* BCalendarView setters do perform validation checks, and will adjust
the day so it fits the requested month or year.
* Add tests for the BCalendarView setters.
2014-09-30 15:38:24 +02:00
Adrien Destugues
dd21b4666e Add tests for BDateFormat. 2014-09-30 09:37:03 +02:00
Adrien Destugues
d7f449e9bc Convert language tests to cppunit. 2014-09-29 18:37:50 +02:00
Adrien Destugues
706f3f5396 Convert collator test to cppunit. 2014-09-29 18:37:49 +02:00
Adrien Destugues
af59f5ca42 Convert BUnicodeChar tests to cppunit. 2014-09-29 18:37:49 +02:00
Adrien Destugues
bd0644183c localeTest: fix corrupted characters.
This file used to hold iso-8859-15 encoded bytes for testing our char
conversion ability. However something went wrong and they all got
replaced by unicode "invalid character" mark. Use \x notation to escape
the actual bytes we want to test.
2014-09-29 18:37:48 +02:00
Adrien Destugues
27a2d2c7ef ICUTest: style and output formatting fixes 2014-09-29 18:37:48 +02:00
Adrien Destugues
9d1cbc67a6 localeTest: fix build. 2014-09-29 18:37:47 +02:00
Adrien Destugues
84e6fa8e2a Geolocation: use test key for tests.
Mozilla provide a test key (with usage restrictions) for testing
purpose. Make use of it in our unit tests.
2014-09-24 19:02:23 +02:00
Adrien Destugues
13f0458896 Add BGeolocation experimental API.
A BGeolocation object can query an online service to get geolocation
and geotagging data:
 * LocateSelf() tries to locate the machine it is running on, by using an
online database of wifi access points
 * Locate() (not yet implemented) searches a BString and converts it to
lat/lon coordinates (reverse geotagging)
 * Name() (not yet implemented) finds a suitable name for the given
coordinates (address, building name, or anything fitting).

The default service used is openbmap.org, which is freely available but
not very accurate. A request has been sent to Mozilla to use MLS
(Mozilla Location Services), which is a bit more accurate but needs an
API key. MLS is used for geolocation on FirefoxOS, for mobile phones
which don't have a GPS, and the data can be contributed by Firefox for
Android or the dedicated MozStumbler app.

Alternatively, Google Maps also provide the service, but wants
people to pay for it. Google Maps data is more accurate as all Android
devices contribute data to it.

All 3 services use the same JSON-based API: we send a list of reachable
Wifi APs (mac address and signal strength), and we get lattitude and
longitude information, and possibly extra data which will currently be
unused.

This can be used to implement HTML5 geolocation with reasonably accurate
results, but it can also be used in other places. For example
FirstBootPrompt could try to guess a list of most likely languages and
keyboard layouts from it (if wifi is working at install time, that is).
2014-09-23 16:37:59 +02:00
Adrien Destugues
ee2985c144 NetworkSetup: list and join wireless networks
* Reuse the logic from the old network preflet for now. Something better
can be done later.
2014-09-19 17:52:11 +02:00
Adrien Destugues
763cd902f6 NetworkSetup: simplify UI layout
* Temporarily disable the non-working Profiles popup
* Remove the currently single-tabbed TabView
* Remove duplicate apply and revert buttons in the interfaces add-on.

The goal here is to remove functionalities not available in the current
network preferences, and finish the other parts, so we can put this new
preferences panel in service now. We can re-add the extra functionality
later.
2014-09-19 17:52:10 +02:00
Adrien Destugues
126a04e6d6 NetworkSetup: put interface settings in main window
* The initial design was probably inspired by Windows network settings,
which are a mess of nested windows and hyperlinks.
* Instead, the settings can be put directly inside the main window, like
it is done inthe media preflet. This makes the information available at
a glance and makes the UI easier to navigate.
* Remove the "configure" button and popup menu item. A single click is
now enough to show the settings for an interface

For this to work properly, complete the move to layout kit (there were a
few BRect-based constructorls left which would mess the layout) and
remove unneeded rectangle computations (layout kit does the job
already).

Further cleanup pending:
* Removal of the duplicate "revert" button
* Removal of the "save" button and switch to applying settings realtime
* Move the disable/enable and renegociate buttons inside the interface
settings
* Remove the top-level tab view (nested tab views are not nice) and
use a hierarchized list with both interfaces and services on the side
(like the Media preflet has audio and video).
2014-09-19 14:13:01 +02:00
Adrien Destugues
5fae0bc1a2 Add some cppunit-based tests for BTextView.
Note that this does not reproduce #8447. I could not get more precise
details from involved people about how to reproduce this, and the patch
was already applied anyway, so I'm stopping my investigation for now.
Feel free to complete this with more test cases.
2014-09-19 09:59:38 +02:00
Adrien Destugues
c98378e51a Add HTTP proxy support.
* Move default context management to BUrlRequest since some code
(including the testsuite) bypass the BUrlProtocolRoster.
* Introduce proxy host and port in BUrlContext
* Have BHttpRequest use the proxy when making requests
2014-09-15 14:24:37 +02:00
Adrien Destugues
ab280d4400 Fix SVGView test build (missing strings.h include) 2014-09-02 10:16:03 +02:00