Sample hierarchial URL, from my ContactsProvider test case:
content://com.android.contacts/data?account_name=braddroid%40gmail.com&account_type=com.google.GAIA&caller_is_syncadapter=true
Without this patch: (fetching the "account_name" parameter)
10000 iters: 0.5293 ms average
10000 iters: 0.5119 ms average
10000 iters: 0.5158 ms average
With this patch, rewriting it to not allocate memory (no implicit
StringBuilder), but still no caching:
1) when it needs to decode something (i.e account_name above;
allocates memory)
50000 iters: 0.28724 ms average
50000 iters: 0.31774 ms average
50000 iters: 0.28764 ms average
2) when it doesn't need to decode (and thus allocate memory,
i.e. account_type above)
50000 iters: 0.0954 ms average
50000 iters: 0.09124 ms average
50000 iters: 0.09088 ms average
Merge commit '45db67f2e89341412613ea6b162dd0ad36f091c6' into eclair-mr2-plus-aosp
* commit '45db67f2e89341412613ea6b162dd0ad36f091c6':
bug #2180646: make comparing "404-04" and "40404" return true in PhoneNumberUtils.compare().
- when comparing two numbers whose dialable char length is less than the MIN_MATCH (7), treat them as equal if the dialable portion of the numbers match.
- update unit test.
Merge commit '54616f3435e67029006d2f77462c61ed0635a3f6' into eclair-mr2-plus-aosp
* commit '54616f3435e67029006d2f77462c61ed0635a3f6':
Make MockCursor class a part of public SDK.
With this class, external developers will be able to reduce their
redundant work related to testing around ContentProvider/ContentResolver.
Internal Issue number: 2181010
Merge commit '8785c064fab3429c792ac160aeeb19e9926382f0' into eclair-mr2-plus-aosp
* commit '8785c064fab3429c792ac160aeeb19e9926382f0':
Let PLUS occur once anywhere in dial-str network portion.
Create a new extractNetworkPortion() function, since the old one is
public, that does effectively the same thing but is more flexible as
just mentioned.
Addresses issue:
http://buganizer/issue?id=2013998
Change-Id: Ie5df08ef9c871881e8728a44abf0385908000823
Merge commit '2a2805b7fbd25ee11ad554e33bf34dbb2e8b71c5' into eclair-mr2-plus-aosp
* commit '2a2805b7fbd25ee11ad554e33bf34dbb2e8b71c5':
It turns out to be useful to allow enumeration on a per-tag basis,
* changes:
It turns out to be useful to allow enumeration on a per-tag basis, and it's easy to support based on the data structures we have, so add a tag parameter to getNextEvent().
Merge commit 'd1a720d06f92a7228f28361a01f3a158c560cd18' into eclair-mr2-plus-aosp
* commit 'd1a720d06f92a7228f28361a01f3a158c560cd18':
Enable some tests that requires local http server
Merge commit '9e58e6427c8e5fefb65432ea4b56c6cb31e80bbd' into eclair-mr2
* commit '9e58e6427c8e5fefb65432ea4b56c6cb31e80bbd':
Enable some tests that requires local http server
Now, basic tests are almost ready.
TODO:
- importer test toward multiple vCard input (though it was tested with real usage)
- exporter tests for multiple composition
- tests with non-Ascii
- tests with special types like TYPE_DOCOMO
ISSUE:
In order to fully check the validity of exporter, we may have to develop
some vCard importer which rejects vCard which is valid but a kind of dubious.
Internal Issue Number: 2160039
Merge commit '5c8a80b8fc7a25dda269cd16e0b90b35227fd625' into eclair-mr2-plus-aosp
* commit '5c8a80b8fc7a25dda269cd16e0b90b35227fd625':
Framework-side DropBox service that maintains a size-bounded
queue of data chunks (sort of a blob-oriented logcat).
In the future, this will be coupled with a revised checkin service that
would actually upload this data.
Merge commit 'd48e25d4e3278c5e975db01adb98661ee59923fe' into eclair-mr2-plus-aosp
* commit 'd48e25d4e3278c5e975db01adb98661ee59923fe':
Add a new TestSuites: VCardTests
Now, the following command is available.
adb shell am instrument -w -e class com.android.unit_tests.vcard.VCardTests com.android.unit_tests/android.test.InstrumentationTestRunner
Internal Issuer number: 2160039
Merge commit '347daf3a9802b2a4184ff8aa90b4af6c5de79ab7' into eclair-mr2-plus-aosp
* commit '347daf3a9802b2a4184ff8aa90b4af6c5de79ab7':
Implement unit tests for vCard exporter, which depends on the sucess in vCard importer.
In order to share the logic between tests for importer and those for exporter,
PropertyNodesVerifier is now a separated class and drastically modified.
Now the class accept "unordered" expected PropertyNode objects, which allows vCard
composer to not care the exact order of each elements.
MockCursor is added, which may be added into the public API in the future, but in
the test directory for now.
Another MockContentProvider is (temporarily) developed so that it can be accepted by
MockContentResolver#addProvider(), which does not allow IContentProvider and its
descendants but only exact ContentProvider, while the original MockContentProvider in
android.test.mock.MockContentProvider implements IContentProvider.
The test development is still on-going, but this test suffices minimal requirement of
vCard tests.
Internal issue number: 2160039
Merge commit '5a016488da5ff6c1ecdff0b1febd836cc1711531' into eclair-mr2-plus-aosp
* commit '5a016488da5ff6c1ecdff0b1febd836cc1711531':
Develop ContentResolver-based unit tests for vCard importer and fix vCard code
along with the tests
Make test code not only check the validity of VCardParser but also check
the validity of the data insertion part of ContactStruct class, using
MockContentResolver/MockContentProvider. With these tests, we are now really sure
vCard side appropriately sends vCard data into the resolver.
Fix ContactStruct so that it properly handles ORG property and TITLE property,
though it still does not see Group information. There's no vCard found which
uses Group and ORG and TITLE in convolted orders...
e.g. Current implementation misinterprets the following case, but we're not sure
whether any exporter emits data in this kind of complicated form...
group2.ORG:ComparyA
group1.ORG:CompanyB
group1.TITLE:TitleForA
group2.TITLE:TitleForB
Expected: CompanyA + TitleForA, CompanyB + TitleForB
Actual: CompanyA + TitleForB, CompanyB + TitleForA
Also change the parser part a little, so that some component can be reused via
the other part of vCard code.
Added several additional files for the tests, which ensures that
- ORG/TITLE properties are handled as we expect.
- PREF is appropriately handled and passed to the resolver as "IS_PRIMARY" flag.
-- We discarded the code which ensures that "IS_PRIMARY" is added to only one
field in each type, after the local discussion (the duplication or no primary
state should be handled by the resolver).
Internal Issue number: 2160039
Merge commit '72da3a467e46453e87549492ccec47e1feda6fe2' into eclair-mr2-plus-aosp
* commit '72da3a467e46453e87549492ccec47e1feda6fe2':
Fix failing unit test; the test was using a deprecated API making it fail on WVGA devices.
Merge commit '277a41a771c56727ad7456dad23f964e9e3ed546' into eclair-plus-aosp
* commit '277a41a771c56727ad7456dad23f964e9e3ed546':
rebase layout test result as the numbers reported are much more stable now
Merge commit '1cdb55aa97d8035a941a4bd7cf23063f18360ab5' into eclair-plus-aosp
* commit '1cdb55aa97d8035a941a4bd7cf23063f18360ab5':
Added code style fix that actually did not get submitted in 2nd patch of previous change.
Merge commit 'c18b0ebcfb905cc5001618c78890e884a859e069' into eclair-plus-aosp
* commit 'c18b0ebcfb905cc5001618c78890e884a859e069':
Add checks for double-dumping on webkit data.
Also some logs seem to suggest that in rare occations, a webkit dump after timeout has occured actually never hears any response back from webkit, thus causing the test app to wait forever, because the request webkit data mechanism is not protected by a timeout watchdog. So adding a explicit log print before calling webkit dump for monitoring in future test runs.
Merge commit 'd021ea27cea0ea14ad0e0295eaa51c94e92946fc' into eclair-plus-aosp
* commit 'd021ea27cea0ea14ad0e0295eaa51c94e92946fc':
Modified the test case name for the browser page load test.
Merge commit '5648dbb1dabc0231fe953ad45916c067c79986c8' into eclair-plus-aosp
* commit '5648dbb1dabc0231fe953ad45916c067c79986c8':
DO NOT MERGE: Cleaning up the PipedStreamTest