public function testToString() { $os = new Os(); $this->assertEquals('', $os->toString()); $os->reset(['name' => 'iOS', 'version' => new Version(['value' => '8.0'])]); $this->assertEquals('iOS 8.0', $os->toString()); $os->reset(['name' => 'iOS', 'alias' => 'iPhone OS', 'version' => new Version(['value' => '3.0'])]); $this->assertEquals('iPhone OS 3.0', $os->toString()); $os->reset(['name' => 'OS X', 'version' => new Version(['value' => '10.11', 'nickname' => 'El Capitan'])]); $this->assertEquals('OS X El Capitan 10.11', $os->toString()); $os->reset(['name' => 'Windows', 'version' => new Version(['value' => '5.1', 'alias' => 'XP'])]); $this->assertEquals('Windows XP', $os->toString()); }
/** * Get a human readable string of the whole browser identification * * @return string */ public function toString() { $prefix = $this->camouflage ? 'an unknown browser that imitates ' : ''; $browser = $this->browser->toString(); $os = $this->os->toString(); $engine = $this->engine->toString(); $device = $this->device->toString(); if (empty($device) && empty($os) && $this->device->type == 'television') { $device = 'television'; } if (empty($device) && $this->device->type == 'emulator') { $device = 'emulator'; } if (!empty($browser) && !empty($os) && !empty($device)) { return $prefix . $browser . ' on ' . $this->a($device) . ' running ' . $os; } if (!empty($browser) && empty($os) && !empty($device)) { return $prefix . $browser . ' on ' . $this->a($device); } if (!empty($browser) && !empty($os) && empty($device)) { return $prefix . $browser . ' on ' . $os; } if (empty($browser) && !empty($os) && !empty($device)) { return $prefix . $this->a($device) . ' running ' . $os; } if (!empty($browser) && empty($os) && empty($device)) { return $prefix . $browser; } if (empty($browser) && empty($os) && !empty($device)) { return $prefix . $this->a($device); } if ($this->device->type == 'desktop' && !empty($os) && !empty($engine) && empty($device)) { return 'an unknown browser based on ' . $engine . ' running on ' . $os; } if ($this->browser->stock && !empty($os) && empty($device)) { return $os; } if ($this->browser->stock && !empty($engine) && empty($device)) { return 'an unknown browser based on ' . $engine; } if ($this->device->type == 'bot') { return 'an unknown bot'; } return 'an unknown browser'; }