http://www.phing.info/

Source Code Coverage

Designed for use with PHPUnit, Xdebug and Phing.

Methods: 12 LOC: 193 Statements: 48
Legend: executednot executeddead code
Source file Statements Methods Total coverage
User.php 100.0% 100.0% 100.0%
 
1
<?php
2
/**
3
 * User.php
4
 * 07-Sep-2011
5
 *
6
 * PHP Version 5
7
 *
8
 * @category Services
9
 * @package  Services_Openstreetmap
10
 * @author   Ken Guest <kguest@php.net>
11
 * @license  BSD http://www.opensource.org/licenses/bsd-license.php
12
 * @version  Release: @package_version@
13
 * @link     User.php
14
*/
15
16
/**
17
 * Services_Openstreetmap_User
18
 *
19
 * @category Services
20
 * @package  Services_Openstreetmap
21
 * @author   Ken Guest <kguest@php.net>
22
 * @license  BSD http://www.opensource.org/licenses/bsd-license.php
23
 * @link     User.php
24
 */
25
class Services_Openstreetmap_User
26
{
27
28
    protected $preferences = array();
29
30
    /**
31
     * setXml
32
     *
33
     * @param SimpleXMLElement $xml XML describing a user.
34
     *
35
     * @return Services_Openstreetmap_User
36
     */
37
    public function setXml(SimpleXMLElement $xml)
38
    {
39 3
        $this->xml = $xml->saveXML();
40 3
        $this->obj = $xml->xpath('//user');
41 3
        return $this;
42
    }
43
44
    /**
45
     * setPreferencesXml
46
     *
47
     * @param mixed $xml XML describing a user's preferences.
48
     *
49
     * @return void
50
     */
51
    public function setPreferencesXml($xml)
52
    {
53 3
        $this->prefXml = $xml;
54 3
        $this->prefObj = simplexml_load_string($xml)->xpath('//preferences');
55
    }
56
57
    /**
58
     * Return the attributes set for this user instance.
59
     *
60
     * @return string getAttributes()
61
     */
62
    public function getAttributes()
63
    {
64 1
        return $this->obj[0]->attributes();
65
    }
66
67
    /**
68
     * Return the display name of the user.
69
     *
70
     * @return string display name of user.
71
     */
72
    public function getDisplayName()
73
    {
74 1
        return (string) $this->getAttributes()->display_name;
75
    }
76
77
    /**
78
     * Retrieve date, as a string, representing when the user's account was
79
     * created.
80
     *
81
     * @return string
82
     */
83
    public function getAccountCreated()
84
    {
85 1
        return (string) $this->getAttributes()->account_created;
86
    }
87
88
    /**
89
     * Return the description set for the user.
90
     *
91
     * @return string
92
     */
93
    public function getDescription()
94
    {
95 1
        $desc = simplexml_load_string($this->xml)->xpath('//user/description');
96 1
        return (string) trim($desc[0]);
97
    }
98
99
    /**
100
     * Retrieve the id of the user.
101
     *
102
     * @return integer id of the object
103
     */
104
    public function getId()
105
    {
106 1
        return (float) $this->getAttributes()->id;
107
    }
108
109
    /**
110
     * Return href to user's profile image, null if not set.
111
     *
112
     * @return string
113
     */
114
    public function getImage()
115
    {
116 2
        $img = simplexml_load_string($this->xml)->xpath('//user/img');
117 2
        if (empty($img)) {
118 1
            return null;
119 1
        }
120 1
        return (string) $img[0]->attributes()->href;
121
    }
122
123
    /**
124
     * Return an array of the user's preferred languages.
125
     *
126
     * @return array
127
     */
128
    public function getLanguages()
129
    {
130 1
        $langers = array();
131 1
        $cxml = simplexml_load_string($this->xml);
132 1
        $languages = $cxml->xpath('//user/languages');
133 1
        foreach ($languages[0]->children() as $child) {
134 1
            if ($child->getName() == 'lang') {
135 1
                $langers[] = (string) $child[0];
136 1
            }
137 1
        }
138 1
        return $langers;
139
    }
140
141
    /**
142
     * Latitude of 'home' setting for user.
143
     *
144
     * @return float
145
     */
146
    public function getLat()
147
    {
148 2
        $home = simplexml_load_string($this->xml)->xpath('//user/home');
149 2
        if (empty($home)) {
150 1
            return null;
151 1
        }
152 1
        return (float) $home[0]->attributes()->lat;
153
    }
154
155
    /**
156
     * Longitude of 'home' setting for user.
157
     *
158
     * @return float
159
     */
160
    public function getLon()
161
    {
162 2
        $cxml = simplexml_load_string($this->xml);
163 2
        $home = $cxml->xpath('//user/home');
164 2
        if (empty($home)) {
165 1
            return null;
166 1
        }
167 1
        return (float) $home[0]->attributes()->lon;
168
    }
169
170
    /**
171
     * return an array of the user's preferences.
172
     *
173
     * @return array
174
     */
175
    public function getPreferences()
176
    {
177 1
        if ($this->preferences == array()) {
178
179 1
            $preferences = array();
180 1
            foreach ($this->prefObj[0]->children() as $child) {
181 1
                $key = (string) $child->attributes()->k;
182 1
                if ($key != '') {
183 1
                    $preferences[$key] = (string) $child->attributes()->v;
184 1
                }
185 1
            }
186 1
            $this->preferences = $preferences;
187 1
        }
188 1
        return $this->preferences;
189
    }
190
191
}
192
// vim:set et ts=4 sw=4:
193
?>


Report generated at 2012-01-31T21:54:38Z