Contents |
GeoClue is a software framework which can be used to enable geospatial awareness in applications. GeoClue utilizes the D-Bus inter-process communication mechanism to provide location information. Through this it aims to simplify development of location aware applications and promote code reuse within the free software and open source communities by defining a logical boundary between the applications and underlying location providers.
The following sequence diagram could help to understand how the classes interact to get the address, for instance:
and GeoClue provides access to multiple position providers:
Geoclue test suites are developed with focusing on API level testing. Each API is tested with a dedicated test suite. According to latest design, below is the key function feature and key point.
| FEA ID | Feature summary | Feature description and Test points | Platform | Priority |
|---|---|---|---|---|
| n/a | Position API |
* GeoClue should be able to extract the position information from the position providers which implement one or more Geoclue interface . | ALL | Major |
| n/a | Geocode and ReverseGeocode API |
* The Geocode interface should be available for getting a position from an address. | ALL | Normal |
| n/a | Accuracy API |
* The accuracy API should be available for setting and getting the accuracy of position | ALL | Normal |
| n/a | Providers and Master provider |
* GeoClue should provide API to get the position information from a special provider or master provider. | ALL | Normal |
This test suite is only focus on the GeoClue API level testing, and the testing for each concrete provider is not in the scope of this suite. Only some provider will be involved for verifying the associated GeoClue API. Also performance testing is covered by Performance test plan. At the same time, internationalization and localization testing are also not involved in this test suite.
GeoClue is a modular geoinformation service built on top of the D-Bus messaging system, so we are going to focus our test on the API functions. and all above mentioned API will be tested. The test cases are developed in glibc to access the D-Bus API, and could be executed automatically with the tools 'testkit' and 'AutoDTI'.
Test Types:
Most of cases are auto cases and provide function testing.
Test level:
All the cases are API level and inplemented with C language.
Test Automation:
Most of cases are auto cases and could be executed with the the tools 'testkit' and 'AutoDTI'.
$ ls /usr/share/dbus-1/services | grep org.freedesktop.Geoclue.Providers
Below services should be printed on screen:
org.freedesktop.Geoclue.Master.service
org.freedesktop.Geoclue.Providers.Example.service
org.freedesktop.Geoclue.Providers.Geonames.service
org.freedesktop.Geoclue.Providers.Gsmloc.service
org.freedesktop.Geoclue.Providers.Gypsy.service
org.freedesktop.Geoclue.Providers.Hostip.service
org.freedesktop.Geoclue.Providers.Localnet.service
org.freedesktop.Geoclue.Providers.Manual.service
org.freedesktop.Geoclue.Providers.Nominatim.service
org.freedesktop.Geoclue.Providers.Plazes.service
org.freedesktop.Geoclue.Providers.Test.service
org.freedesktop.Geoclue.Providers.Yahoo.service
N/A
GeoClue: http://www.freedesktop.org/wiki/Software/GeoClue MCTS QA-tools: http://gitorious.org/qa-tools/mcts