Skip to content

Commit acef8f2

Browse files
dutchie027bram-pkg
andauthored
Add Microsoft Edge User Agent (#464)
* Added en_US Name Justin * Added Edge UserAgent and Test * decided to rename edge to msedge to avoid possible collisions of names * Revert "Added en_US Name Justin" This reverts commit ef0e1c4. * User Agent test reversion - change back to msedge It seems that when the User Agent test reverted to the original name of `edge` and not `msedge`. This change fixes it back. * white space php-fixer * phpdoc requirements in Generator.php * erroneous white space - even after lint? * Update UserAgent.php Co-authored-by: Bram <[email protected]>
1 parent 834cd7c commit acef8f2

File tree

3 files changed

+47
-2
lines changed

3 files changed

+47
-2
lines changed

src/Faker/Generator.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -513,6 +513,10 @@
513513
*
514514
* @method string chrome()
515515
*
516+
* @property string $msedge
517+
*
518+
* @method string msedge()
519+
*
516520
* @property string $firefox
517521
*
518522
* @method string firefox()
@@ -537,6 +541,10 @@
537541
*
538542
* @method string macPlatformToken()
539543
*
544+
* @property string $iosMobileToken
545+
*
546+
* @method string iosMobileToken()
547+
*
540548
* @property string $linuxPlatformToken
541549
*
542550
* @method string linuxPlatformToken()

src/Faker/Provider/UserAgent.php

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
class UserAgent extends Base
66
{
7-
protected static $userAgents = ['firefox', 'chrome', 'internetExplorer', 'opera', 'safari'];
7+
protected static $userAgents = ['firefox', 'chrome', 'internetExplorer', 'opera', 'safari', 'edge'];
88

99
protected static $windowsPlatformTokens = [
1010
'Windows NT 6.2', 'Windows NT 6.1', 'Windows NT 6.0', 'Windows NT 5.2', 'Windows NT 5.1',
@@ -25,7 +25,7 @@ class UserAgent extends Base
2525
/**
2626
* Add as many languages as you like.
2727
*/
28-
protected static $lang = ['en-US', 'sl-SI'];
28+
protected static $lang = ['en-US', 'sl-SI', 'nl-NL'];
2929

3030
/**
3131
* Generate mac processor
@@ -81,6 +81,28 @@ public static function chrome()
8181
return 'Mozilla/5.0 ' . static::randomElement($platforms);
8282
}
8383

84+
/**
85+
* Generate Edge user agent
86+
*
87+
* @example 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.82 Safari/537.36 Edg/99.0.1150.36'
88+
*
89+
* @return string
90+
*/
91+
public static function msedge()
92+
{
93+
$saf = self::numberBetween(531, 537) . '.' . self::numberBetween(0, 2);
94+
$chrv = self::numberBetween(79, 99) . '.0';
95+
96+
$platforms = [
97+
'(' . static::windowsPlatformToken() . ") AppleWebKit/$saf (KHTML, like Gecko) Chrome/$chrv" . '.' . self::numberBetween(4000, 4844) . '.' . self::numberBetween(10, 99) . " Safari/$saf Edg/$chrv" . self::numberBetween(1000, 1146) . '.' . self::numberBetween(0, 99),
98+
'(' . static::macPlatformToken() . ") AppleWebKit/$saf (KHTML, like Gecko) Chrome/$chrv" . '.' . self::numberBetween(4000, 4844) . '.' . self::numberBetween(10, 99) . " Safari/$saf Edg/$chrv" . self::numberBetween(1000, 1146) . '.' . self::numberBetween(0, 99),
99+
'(' . static::linuxPlatformToken() . ") AppleWebKit/$saf (KHTML, like Gecko) Chrome/$chrv" . '.' . self::numberBetween(4000, 4844) . '.' . self::numberBetween(10, 99) . " Safari/$saf EdgA/$chrv" . self::numberBetween(1000, 1146) . '.' . self::numberBetween(0, 99),
100+
'(' . static::iosMobileToken() . ") AppleWebKit/$saf (KHTML, like Gecko) Version/15.0 EdgiOS/$chrv" . self::numberBetween(1000, 1146) . '.' . self::numberBetween(0, 99) . " Mobile/15E148 Safari/$saf",
101+
];
102+
103+
return 'Mozilla/5.0 ' . static::randomElement($platforms);
104+
}
105+
84106
/**
85107
* Generate Firefox user agent
86108
*
@@ -177,6 +199,16 @@ public static function macPlatformToken()
177199
return 'Macintosh; ' . static::randomElement(static::$macProcessor) . ' Mac OS X 10_' . self::numberBetween(5, 8) . '_' . self::numberBetween(0, 9);
178200
}
179201

202+
/**
203+
* @return string
204+
*/
205+
public static function iosMobileToken()
206+
{
207+
$iosVer = self::numberBetween(13, 15) . '_' . self::numberBetween(0, 2);
208+
209+
return 'iPhone; CPU iPhone OS ' . $iosVer . ' like Mac OS X';
210+
}
211+
180212
/**
181213
* @return string
182214
*/

test/Faker/Provider/UserAgentTest.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,9 @@ public function testChromeUserAgent()
3939
{
4040
self::assertStringContainsString('(KHTML, like Gecko) Chrome/', UserAgent::chrome());
4141
}
42+
43+
public function testMSEdgeUserAgent()
44+
{
45+
self::assertStringContainsString('Edg', UserAgent::msedge());
46+
}
4247
}

0 commit comments

Comments
 (0)