All Downloads are FREE. Search and download functionalities are using the official Maven repository.

UserAgents.ClientHints-Tests.yaml Maven / Gradle / Ivy

Go to download

A parsing an analyzing library to get information from a useragent string.

There is a newer version: 7.29.0
Show newest version
#
# Yet Another UserAgent Analyzer
# Copyright (C) 2013-2024 Niels Basjes
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an AS IS BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

config:
- test:
    name: 'Chrome 99 on Windows 11 (No Client Hints) (old test format)'
    input:
      user_agent_string                          : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.361'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Windows NT'
      OperatingSystemVersion                     : '>=10'
      OperatingSystemVersionMajor                : '>=10'
      OperatingSystemNameVersion                 : 'Windows >=10'
      OperatingSystemNameVersionMajor            : 'Windows >=10'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '99.0'
      LayoutEngineVersionMajor                   : '99'
      LayoutEngineNameVersion                    : 'Blink 99.0'
      LayoutEngineNameVersionMajor               : 'Blink 99'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '99.0.4844.51'
      AgentVersionMajor                          : '99'
      AgentNameVersion                           : 'Chrome 99.0.4844.51'
      AgentNameVersionMajor                      : 'Chrome 99'


- test:
    name: 'Chrome 99 on Windows 11 (No Client Hints) (header based test format)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.362'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Windows NT'
      OperatingSystemVersion                     : '>=10'
      OperatingSystemVersionMajor                : '>=10'
      OperatingSystemNameVersion                 : 'Windows >=10'
      OperatingSystemNameVersionMajor            : 'Windows >=10'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '99.0'
      LayoutEngineVersionMajor                   : '99'
      LayoutEngineNameVersion                    : 'Blink 99.0'
      LayoutEngineNameVersionMajor               : 'Blink 99'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '99.0.4844.51'
      AgentVersionMajor                          : '99'
      AgentNameVersion                           : 'Chrome 99.0.4844.51'
      AgentNameVersionMajor                      : 'Chrome 99'


- test:
    name: 'Chrome 99 on Windows 11 (Standard Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'
      Sec-Ch-Ua                                  : '" Not A;Brand";v="99", "Chromium";v="99", "Google Chrome";v="99"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Platform                         : '"Windows"'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Windows NT'
      OperatingSystemVersion                     : '>=10'
      OperatingSystemVersionMajor                : '>=10'
      OperatingSystemNameVersion                 : 'Windows >=10'
      OperatingSystemNameVersionMajor            : 'Windows >=10'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '99.0'
      LayoutEngineVersionMajor                   : '99'
      LayoutEngineNameVersion                    : 'Blink 99.0'
      LayoutEngineNameVersionMajor               : 'Blink 99'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '99.0.4844.51'
      AgentVersionMajor                          : '99'
      AgentNameVersion                           : 'Chrome 99.0.4844.51'
      AgentNameVersionMajor                      : 'Chrome 99'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '99'
      UAClientHintBrands_1_Brand                 : 'Google Chrome'
      UAClientHintBrands_1_Version               : '99'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Windows'

- test:
    name: 'Chrome 99 on Windows 11 (Full Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'
      Sec-Ch-Ua                                  : '" Not A;Brand";v="99", "Chromium";v="99", "Google Chrome";v="99"'
      Sec-Ch-Ua-Arch                             : '"x86"'
      Sec-Ch-Ua-Full-Version-List                : '" Not A;Brand";v="99.0.0.0", "Chromium";v="99.0.4844.51", "Google Chrome";v="99.0.4844.51"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Model                            : ''
      Sec-Ch-Ua-Platform                         : '"Windows"'
      Sec-Ch-Ua-Platform-Version                 : '"14.0.0"'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Windows NT'
      OperatingSystemVersion                     : '11'
      OperatingSystemVersionMajor                : '11'
      OperatingSystemNameVersion                 : 'Windows 11'
      OperatingSystemNameVersionMajor            : 'Windows 11'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '99.0'
      LayoutEngineVersionMajor                   : '99'
      LayoutEngineNameVersion                    : 'Blink 99.0'
      LayoutEngineNameVersionMajor               : 'Blink 99'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '99.0.4844.51'
      AgentVersionMajor                          : '99'
      AgentNameVersion                           : 'Chrome 99.0.4844.51'
      AgentNameVersionMajor                      : 'Chrome 99'
      UAClientHintArchitecture                   : 'x86'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '99'
      UAClientHintBrands_1_Brand                 : 'Google Chrome'
      UAClientHintBrands_1_Version               : '99'
      UAClientHintFullVersionList_0_Brand        : 'Chromium'
      UAClientHintFullVersionList_0_Version      : '99.0.4844.51'
      UAClientHintFullVersionList_1_Brand        : 'Google Chrome'
      UAClientHintFullVersionList_1_Version      : '99.0.4844.51'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Windows'
      UAClientHintPlatformVersion                : '14.0.0'

# Chrome 100 on Windows 7

- test:
    name: 'Chrome 100 on Windows 7 (Normal, NO Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Windows NT'
      OperatingSystemVersion                     : '7'
      OperatingSystemVersionMajor                : '7'
      OperatingSystemNameVersion                 : 'Windows 7'
      OperatingSystemNameVersionMajor            : 'Windows 7'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '100.0'
      LayoutEngineVersionMajor                   : '100'
      LayoutEngineNameVersion                    : 'Blink 100.0'
      LayoutEngineNameVersionMajor               : 'Blink 100'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '100.0.4896.75'
      AgentVersionMajor                          : '100'
      AgentNameVersion                           : 'Chrome 100.0.4896.75'
      AgentNameVersionMajor                      : 'Chrome 100'


- test:
    name: 'Chrome 100 on Windows 7 (Normal, Standard Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36'
      Sec-Ch-Ua                                  : '" Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Platform                         : '"Windows"'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Windows NT'
      OperatingSystemVersion                     : '7'
      OperatingSystemVersionMajor                : '7'
      OperatingSystemNameVersion                 : 'Windows 7'
      OperatingSystemNameVersionMajor            : 'Windows 7'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '100.0'
      LayoutEngineVersionMajor                   : '100'
      LayoutEngineNameVersion                    : 'Blink 100.0'
      LayoutEngineNameVersionMajor               : 'Blink 100'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '100.0.4896.75'
      AgentVersionMajor                          : '100'
      AgentNameVersion                           : 'Chrome 100.0.4896.75'
      AgentNameVersionMajor                      : 'Chrome 100'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '100'
      UAClientHintBrands_1_Brand                 : 'Google Chrome'
      UAClientHintBrands_1_Version               : '100'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Windows'


- test:
    name: 'Chrome 100 on Windows 7 (Normal, Full Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36'
      Sec-Ch-Ua                                  : '" Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Arch                             : '"x86"'
      Sec-Ch-Ua-Platform                         : '"Windows"'
      Sec-Ch-Ua-Platform-Version                 : '"0.1.0"'
      Sec-Ch-Ua-Model                            : '""'
      Sec-Ch-Ua-Wow64                            : '?0'
      Sec-Ch-Ua-Full-Version-List                : '" Not A;Brand";v="99.0.0.0", "Chromium";v="100.0.4896.75", "Google Chrome";v="100.0.4896.75"'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Windows NT'
      OperatingSystemVersion                     : '7'
      OperatingSystemVersionMajor                : '7'
      OperatingSystemNameVersion                 : 'Windows 7'
      OperatingSystemNameVersionMajor            : 'Windows 7'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '100.0'
      LayoutEngineVersionMajor                   : '100'
      LayoutEngineNameVersion                    : 'Blink 100.0'
      LayoutEngineNameVersionMajor               : 'Blink 100'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '100.0.4896.75'
      AgentVersionMajor                          : '100'
      AgentNameVersion                           : 'Chrome 100.0.4896.75'
      AgentNameVersionMajor                      : 'Chrome 100'
      UAClientHintArchitecture                   : 'x86'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '100'
      UAClientHintBrands_1_Brand                 : 'Google Chrome'
      UAClientHintBrands_1_Version               : '100'
      UAClientHintFullVersionList_0_Brand        : 'Chromium'
      UAClientHintFullVersionList_0_Version      : '100.0.4896.75'
      UAClientHintFullVersionList_1_Brand        : 'Google Chrome'
      UAClientHintFullVersionList_1_Version      : '100.0.4896.75'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Windows'
      UAClientHintPlatformVersion                : '0.1.0'
      UAClientHintWow64                          : 'false'

# Major in minor version

- test:
    name: 'Chrome 100 on Windows 7 (Major in minor version, NO Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.100.4896.75 Safari/537.36'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Windows NT'
      OperatingSystemVersion                     : '7'
      OperatingSystemVersionMajor                : '7'
      OperatingSystemNameVersion                 : 'Windows 7'
      OperatingSystemNameVersionMajor            : 'Windows 7'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '100.0'
      LayoutEngineVersionMajor                   : '100'
      LayoutEngineNameVersion                    : 'Blink 100.0'
      LayoutEngineNameVersionMajor               : 'Blink 100'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '100.0'
      AgentVersionMajor                          : '100'
      AgentNameVersion                           : 'Chrome 100.0'
      AgentNameVersionMajor                      : 'Chrome 100'


- test:
    name: 'Chrome 100 on Windows 7 (Major in minor version, Standard Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.100.4896.75 Safari/537.36'
      Sec-Ch-Ua                                  : '" Not A;Brand";v="99", "Chromium";v="99", "Google Chrome";v="99"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Platform                         : '"Windows"'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Windows NT'
      OperatingSystemVersion                     : '7'
      OperatingSystemVersionMajor                : '7'
      OperatingSystemNameVersion                 : 'Windows 7'
      OperatingSystemNameVersionMajor            : 'Windows 7'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '100.0'
      LayoutEngineVersionMajor                   : '100'
      LayoutEngineNameVersion                    : 'Blink 100.0'
      LayoutEngineNameVersionMajor               : 'Blink 100'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '100.0'
      AgentVersionMajor                          : '100'
      AgentNameVersion                           : 'Chrome 100.0'
      AgentNameVersionMajor                      : 'Chrome 100'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '99'
      UAClientHintBrands_1_Brand                 : 'Google Chrome'
      UAClientHintBrands_1_Version               : '99'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Windows'


- test:
    name: 'Chrome 100 on Windows 7 (Major in minor version, Full Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.100.4896.75 Safari/537.36'
      Sec-Ch-Ua                                  : '" Not A;Brand";v="99", "Chromium";v="99", "Google Chrome";v="99"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Arch                             : '"x86"'
      Sec-Ch-Ua-Platform                         : '"Windows"'
      Sec-Ch-Ua-Platform-Version                 : '"0.1.0"'
      Sec-Ch-Ua-Model                            : '""'
      Sec-Ch-Ua-Wow64                            : '?0'
      Sec-Ch-Ua-Full-Version-List                : '" Not A;Brand";v="99.0.0.0", "Chromium";v="99.100.4896.75", "Google Chrome";v="99.100.4896.75"'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Windows NT'
      OperatingSystemVersion                     : '7'
      OperatingSystemVersionMajor                : '7'
      OperatingSystemNameVersion                 : 'Windows 7'
      OperatingSystemNameVersionMajor            : 'Windows 7'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '100.0'
      LayoutEngineVersionMajor                   : '100'
      LayoutEngineNameVersion                    : 'Blink 100.0'
      LayoutEngineNameVersionMajor               : 'Blink 100'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '100.0.4896.75'
      AgentVersionMajor                          : '100'
      AgentNameVersion                           : 'Chrome 100.0.4896.75'
      AgentNameVersionMajor                      : 'Chrome 100'
      UAClientHintArchitecture                   : 'x86'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '99'
      UAClientHintBrands_1_Brand                 : 'Google Chrome'
      UAClientHintBrands_1_Version               : '99'
      UAClientHintFullVersionList_0_Brand        : 'Chromium'
      UAClientHintFullVersionList_0_Version      : '99.100.4896.75'
      UAClientHintFullVersionList_1_Brand        : 'Google Chrome'
      UAClientHintFullVersionList_1_Version      : '99.100.4896.75'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Windows'
      UAClientHintPlatformVersion                : '0.1.0'
      UAClientHintWow64                          : 'false'

# Reduced

- test:
    name: 'Chrome 100 on Windows 7 (Reduced User-Agent, NO Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.0.0 Safari/537.36'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Windows NT'
      OperatingSystemVersion                     : '??'
      OperatingSystemVersionMajor                : '??'
      OperatingSystemNameVersion                 : 'Windows NT ??'
      OperatingSystemNameVersionMajor            : 'Windows NT ??'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '100'
      LayoutEngineVersionMajor                   : '100'
      LayoutEngineNameVersion                    : 'Blink 100'
      LayoutEngineNameVersionMajor               : 'Blink 100'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '100'
      AgentVersionMajor                          : '100'
      AgentNameVersion                           : 'Chrome 100'
      AgentNameVersionMajor                      : 'Chrome 100'


- test:
    name: 'Chrome 100 on Windows 7 (Reduced User-Agent, Standard Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.0.0 Safari/537.36'
      Sec-Ch-Ua                                  : '" Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Platform                         : '"Windows"'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Windows NT'
      OperatingSystemVersion                     : '??'
      OperatingSystemVersionMajor                : '??'
      OperatingSystemNameVersion                 : 'Windows NT ??'
      OperatingSystemNameVersionMajor            : 'Windows NT ??'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '100'
      LayoutEngineVersionMajor                   : '100'
      LayoutEngineNameVersion                    : 'Blink 100'
      LayoutEngineNameVersionMajor               : 'Blink 100'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '100'
      AgentVersionMajor                          : '100'
      AgentNameVersion                           : 'Chrome 100'
      AgentNameVersionMajor                      : 'Chrome 100'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '100'
      UAClientHintBrands_1_Brand                 : 'Google Chrome'
      UAClientHintBrands_1_Version               : '100'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Windows'


- test:
    name: 'Chrome 100 on Windows 7 (Reduced User-Agent, Full Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.0.0 Safari/537.36'
      Sec-Ch-Ua                                  : '" Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"'
      Sec-Ch-Ua-Arch                             : '"x86"'
      Sec-Ch-Ua-Full-Version-List                : '" Not A;Brand";v="99.0.0.0", "Chromium";v="100.0.4896.75", "Google Chrome";v="100.0.4896.75"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Model                            : '""'
      Sec-Ch-Ua-Platform                         : '"Windows"'
      Sec-Ch-Ua-Platform-Version                 : '"0.1.0"'
      Sec-Ch-Ua-Wow64                            : '?0'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Windows NT'
      OperatingSystemVersion                     : '7'
      OperatingSystemVersionMajor                : '7'
      OperatingSystemNameVersion                 : 'Windows 7'
      OperatingSystemNameVersionMajor            : 'Windows 7'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '100.0'
      LayoutEngineVersionMajor                   : '100'
      LayoutEngineNameVersion                    : 'Blink 100.0'
      LayoutEngineNameVersionMajor               : 'Blink 100'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '100.0.4896.75'
      AgentVersionMajor                          : '100'
      AgentNameVersion                           : 'Chrome 100.0.4896.75'
      AgentNameVersionMajor                      : 'Chrome 100'
      UAClientHintArchitecture                   : 'x86'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '100'
      UAClientHintBrands_1_Brand                 : 'Google Chrome'
      UAClientHintBrands_1_Version               : '100'
      UAClientHintFullVersionList_0_Brand        : 'Chromium'
      UAClientHintFullVersionList_0_Version      : '100.0.4896.75'
      UAClientHintFullVersionList_1_Brand        : 'Google Chrome'
      UAClientHintFullVersionList_1_Version      : '100.0.4896.75'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Windows'
      UAClientHintPlatformVersion                : '0.1.0'
      UAClientHintWow64                          : 'false'


# Chrome 100 on Android 11

- test:
    name: 'Chrome 100 on Android 11 (Reduced User-Agent, No Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.0.0 Mobile Safari/537.36'
    expected:
      DeviceClass                                : 'Phone'
      DeviceName                                 : 'Android Mobile'
      DeviceBrand                                : 'Unknown'
      OperatingSystemClass                       : 'Mobile'
      OperatingSystemName                        : 'Android'
      OperatingSystemVersion                     : '??'
      OperatingSystemVersionMajor                : '??'
      OperatingSystemNameVersion                 : 'Android ??'
      OperatingSystemNameVersionMajor            : 'Android ??'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '100'
      LayoutEngineVersionMajor                   : '100'
      LayoutEngineNameVersion                    : 'Blink 100'
      LayoutEngineNameVersionMajor               : 'Blink 100'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '100'
      AgentVersionMajor                          : '100'
      AgentNameVersion                           : 'Chrome 100'
      AgentNameVersionMajor                      : 'Chrome 100'

- test:
    name: 'Chrome 100 on Android 11 (Reduced User-Agent, Standard Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.0.0 Mobile Safari/537.36'
      Sec-Ch-Ua                                  : '" Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"'
      Sec-Ch-Ua-Mobile                           : '?1'
      Sec-Ch-Ua-Platform                         : '"Android"'
    expected:
      DeviceClass                                : 'Phone'
      DeviceName                                 : 'Android Mobile'
      DeviceBrand                                : 'Unknown'
      OperatingSystemClass                       : 'Mobile'
      OperatingSystemName                        : 'Android'
      OperatingSystemVersion                     : '??'
      OperatingSystemVersionMajor                : '??'
      OperatingSystemNameVersion                 : 'Android ??'
      OperatingSystemNameVersionMajor            : 'Android ??'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '100'
      LayoutEngineVersionMajor                   : '100'
      LayoutEngineNameVersion                    : 'Blink 100'
      LayoutEngineNameVersionMajor               : 'Blink 100'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '100'
      AgentVersionMajor                          : '100'
      AgentNameVersion                           : 'Chrome 100'
      AgentNameVersionMajor                      : 'Chrome 100'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '100'
      UAClientHintBrands_1_Brand                 : 'Google Chrome'
      UAClientHintBrands_1_Version               : '100'
      UAClientHintMobile                         : 'true'
      UAClientHintPlatform                       : 'Android'

- test:
    name: 'Chrome 100 on Android 11 (Reduced User-Agent, Full Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.0.0 Mobile Safari/537.36'
      Sec-Ch-Ua                                  : '" Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"'
      Sec-Ch-Ua-Arch                             : ''
      Sec-Ch-Ua-Full-Version-List                : '" Not A;Brand";v="99.0.0.0", "Chromium";v="100.0.4896.79", "Google Chrome";v="100.0.4896.79"'
      Sec-Ch-Ua-Mobile                           : '?1'
      Sec-Ch-Ua-Model                            : '"Nokia 7.2"'
      Sec-Ch-Ua-Platform                         : '"Android"'
      Sec-Ch-Ua-Platform-Version                 : '"11.0.0"'
    expected:
      DeviceClass                                : 'Phone'
      DeviceName                                 : 'Nokia 7.2'
      DeviceBrand                                : 'Nokia'
      OperatingSystemClass                       : 'Mobile'
      OperatingSystemName                        : 'Android'
      OperatingSystemVersion                     : '11.0.0'
      OperatingSystemVersionMajor                : '11'
      OperatingSystemNameVersion                 : 'Android 11.0.0'
      OperatingSystemNameVersionMajor            : 'Android 11'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '100.0'
      LayoutEngineVersionMajor                   : '100'
      LayoutEngineNameVersion                    : 'Blink 100.0'
      LayoutEngineNameVersionMajor               : 'Blink 100'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '100.0.4896.79'
      AgentVersionMajor                          : '100'
      AgentNameVersion                           : 'Chrome 100.0.4896.79'
      AgentNameVersionMajor                      : 'Chrome 100'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '100'
      UAClientHintBrands_1_Brand                 : 'Google Chrome'
      UAClientHintBrands_1_Version               : '100'
      UAClientHintFullVersionList_0_Brand        : 'Chromium'
      UAClientHintFullVersionList_0_Version      : '100.0.4896.79'
      UAClientHintFullVersionList_1_Brand        : 'Google Chrome'
      UAClientHintFullVersionList_1_Version      : '100.0.4896.79'
      UAClientHintMobile                         : 'true'
      UAClientHintModel                          : 'Nokia 7.2'
      UAClientHintPlatform                       : 'Android'
      UAClientHintPlatformVersion                : '11.0.0'


- test:
    name: 'Edge 100 on Linux (Normal, Standard Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36 Edg/100.0.1185.27'
      Sec-CH-UA                                  : '" Not A;Brand";v="99", "Chromium";v="100", "Microsoft Edge";v="100"'
      Sec-CH-UA-Mobile                           : '?0'
      Sec-CH-UA-Platform                         : '"Linux"'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Linux Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Linux'
      OperatingSystemVersion                     : '??'
      OperatingSystemVersionMajor                : '??'
      OperatingSystemNameVersion                 : 'Linux ??'
      OperatingSystemNameVersionMajor            : 'Linux ??'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '100.0'
      LayoutEngineVersionMajor                   : '100'
      LayoutEngineNameVersion                    : 'Blink 100.0'
      LayoutEngineNameVersionMajor               : 'Blink 100'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Edge'
      AgentVersion                               : '100.0.1185.27'
      AgentVersionMajor                          : '100'
      AgentNameVersion                           : 'Edge 100.0.1185.27'
      AgentNameVersionMajor                      : 'Edge 100'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '100'
      UAClientHintBrands_1_Brand                 : 'Microsoft Edge'
      UAClientHintBrands_1_Version               : '100'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Linux'


- test:
    name: 'Edge 100 on Linux (Normal, Full Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36 Edg/100.0.1185.27'
      Sec-CH-UA                                  : '" Not A;Brand";v="99", "Chromium";v="100", "Microsoft Edge";v="100"'
      Sec-CH-UA-Arch                             : '"x86"'
      Sec-CH-UA-Full-Version-List                : '" Not A;Brand";v="99.0.0.0", "Chromium";v="100.0.1185.27", "Microsoft Edge";v="100.0.1185.27"'
      Sec-CH-UA-Mobile                           : '?0'
      Sec-CH-UA-Model                            : '""'
      Sec-CH-UA-Platform                         : '"Linux"'
      Sec-CH-UA-Platform-Version                 : '"5.13.0"'
      Sec-CH-UA-WoW64                            : '?0'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Linux Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Linux'
      OperatingSystemVersion                     : '5.13.0'
      OperatingSystemVersionMajor                : '5'
      OperatingSystemNameVersion                 : 'Linux 5.13.0'
      OperatingSystemNameVersionMajor            : 'Linux 5'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '100.0'
      LayoutEngineVersionMajor                   : '100'
      LayoutEngineNameVersion                    : 'Blink 100.0'
      LayoutEngineNameVersionMajor               : 'Blink 100'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Edge'
      AgentVersion                               : '100.0.1185.27'
      AgentVersionMajor                          : '100'
      AgentNameVersion                           : 'Edge 100.0.1185.27'
      AgentNameVersionMajor                      : 'Edge 100'
      UAClientHintArchitecture                   : 'x86'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '100'
      UAClientHintBrands_1_Brand                 : 'Microsoft Edge'
      UAClientHintBrands_1_Version               : '100'
      UAClientHintFullVersionList_0_Brand        : 'Chromium'
      UAClientHintFullVersionList_0_Version      : '100.0.1185.27'
      UAClientHintFullVersionList_1_Brand        : 'Microsoft Edge'
      UAClientHintFullVersionList_1_Version      : '100.0.1185.27'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Linux'
      UAClientHintPlatformVersion                : '5.13.0'
      UAClientHintWow64                          : 'false'

- test:
    name: 'Chrome 100 on Linux (Reduced, Standard Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.0.0 Safari/537.36'
      Sec-CH-UA                                  : '" Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"'
      Sec-CH-UA-Mobile                           : '?0'
      Sec-CH-UA-Platform                         : '"Linux"'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Linux Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Linux'
      OperatingSystemVersion                     : '??'
      OperatingSystemVersionMajor                : '??'
      OperatingSystemNameVersion                 : 'Linux ??'
      OperatingSystemNameVersionMajor            : 'Linux ??'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '100'
      LayoutEngineVersionMajor                   : '100'
      LayoutEngineNameVersion                    : 'Blink 100'
      LayoutEngineNameVersionMajor               : 'Blink 100'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '100'
      AgentVersionMajor                          : '100'
      AgentNameVersion                           : 'Chrome 100'
      AgentNameVersionMajor                      : 'Chrome 100'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '100'
      UAClientHintBrands_1_Brand                 : 'Google Chrome'
      UAClientHintBrands_1_Version               : '100'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Linux'


- test:
    name: 'Chrome 100 on Linux (Reduced, Full Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.0.0 Safari/537.36'
      Sec-CH-UA                                  : '" Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"'
      Sec-CH-UA-Arch                             : '"x86"'
      Sec-CH-UA-Full-Version                     : '"100.0.4896.75"'
      Sec-CH-UA-Full-Version-List                : '" Not A;Brand";v="99.0.0.0", "Chromium";v="100.0.4896.75", "Google Chrome";v="100.0.4896.75"'
      Sec-CH-UA-Mobile                           : '?0'
      Sec-CH-UA-Model                            : '""'
      Sec-CH-UA-Platform                         : '"Linux"'
      Sec-CH-UA-Platform-Version                 : '"5.13.0"'
      Sec-CH-UA-WoW64                            : '?0'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Linux Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Linux'
      OperatingSystemVersion                     : '5.13.0'
      OperatingSystemVersionMajor                : '5'
      OperatingSystemNameVersion                 : 'Linux 5.13.0'
      OperatingSystemNameVersionMajor            : 'Linux 5'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '100.0'
      LayoutEngineVersionMajor                   : '100'
      LayoutEngineNameVersion                    : 'Blink 100.0'
      LayoutEngineNameVersionMajor               : 'Blink 100'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '100.0.4896.75'
      AgentVersionMajor                          : '100'
      AgentNameVersion                           : 'Chrome 100.0.4896.75'
      AgentNameVersionMajor                      : 'Chrome 100'
      UAClientHintArchitecture                   : 'x86'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '100'
      UAClientHintBrands_1_Brand                 : 'Google Chrome'
      UAClientHintBrands_1_Version               : '100'
      UAClientHintFullVersion                    : '100.0.4896.75'
      UAClientHintFullVersionList_0_Brand        : 'Chromium'
      UAClientHintFullVersionList_0_Version      : '100.0.4896.75'
      UAClientHintFullVersionList_1_Brand        : 'Google Chrome'
      UAClientHintFullVersionList_1_Version      : '100.0.4896.75'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Linux'
      UAClientHintPlatformVersion                : '5.13.0'
      UAClientHintWow64                          : 'false'


- test:
    name: 'Yandex Browser with "Google Chrome" Client Hint'
    input:
      User-Agent                                 : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 YaBrowser/18.1.1.841 Yowser/2.5 Safari/537.36'
      Sec-Ch-Ua                                  : '" Not;A Brand";v="99", "Google Chrome";v="63", "Chromium";v="63"'
      Sec-Ch-Ua-Mobile                           : '?0'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Apple Macintosh'
      DeviceBrand                                : 'Apple'
      DeviceCpu                                  : 'Intel'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Mac OS'
      OperatingSystemVersion                     : '10.11.6'
      OperatingSystemVersionMajor                : '10.11'
      OperatingSystemNameVersion                 : 'Mac OS 10.11.6'
      OperatingSystemNameVersionMajor            : 'Mac OS 10.11'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '63.0'
      LayoutEngineVersionMajor                   : '63'
      LayoutEngineNameVersion                    : 'Blink 63.0'
      LayoutEngineNameVersionMajor               : 'Blink 63'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Yandex Browser'
      AgentVersion                               : '18.1.1.841'
      AgentVersionMajor                          : '18'
      AgentNameVersion                           : 'Yandex Browser 18.1.1.841'
      AgentNameVersionMajor                      : 'Yandex Browser 18'
      UAClientHintBrands_0_Brand                 : 'Google Chrome'
      UAClientHintBrands_0_Version               : '63'
      UAClientHintBrands_1_Brand                 : 'Chromium'
      UAClientHintBrands_1_Version               : '63'
      UAClientHintMobile                         : 'false'


- test:
    name: "Chrome 99 on MacOS (Standard Client Hints)"
    input:
      User-Agent                                 : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36'
      Sec-CH-UA                                  : '" Not A;Brand";v="99", "Chromium";v="99", "Google Chrome";v="99"'
      Sec-CH-UA-Mobile                           : '?0'
      Sec-CH-UA-Platform                         : '"macOS"'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Apple Macintosh'
      DeviceBrand                                : 'Apple'
      DeviceCpu                                  : 'Intel'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Mac OS'
      OperatingSystemVersion                     : '>=10.15.7'
      OperatingSystemVersionMajor                : '>=10.15'
      OperatingSystemNameVersion                 : 'Mac OS >=10.15.7'
      OperatingSystemNameVersionMajor            : 'Mac OS >=10.15'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '99.0'
      LayoutEngineVersionMajor                   : '99'
      LayoutEngineNameVersion                    : 'Blink 99.0'
      LayoutEngineNameVersionMajor               : 'Blink 99'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '99.0.4844.84'
      AgentVersionMajor                          : '99'
      AgentNameVersion                           : 'Chrome 99.0.4844.84'
      AgentNameVersionMajor                      : 'Chrome 99'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '99'
      UAClientHintBrands_1_Brand                 : 'Google Chrome'
      UAClientHintBrands_1_Version               : '99'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'macOS'


- test:
    name: 'Chrome 100 on MacOS 12.3.1 (Full Client Hints)'
    input:
      User-Agent                                 :  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36'
      Sec-CH-UA                                  :  '" Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"'
      Sec-CH-UA-Arch                             :  '"arm"'
      Sec-CH-UA-Full-Version-List                :  '" Not A;Brand";v="99.0.0.0", "Chromium";v="100.0.4896.60", "Google Chrome";v="100.0.4896.60"'
      Sec-CH-UA-Mobile                           :  '?0'
      Sec-CH-UA-Model                            :  '""'
      Sec-CH-UA-Platform                         :  '"macOS"'
      Sec-CH-UA-Platform-Version                 :  '"12.3.1"'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Apple Macintosh'
      DeviceBrand                                : 'Apple'
      DeviceCpu                                  : 'ARM'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Mac OS'
      OperatingSystemVersion                     : '12.3.1'
      OperatingSystemVersionMajor                : '12'
      OperatingSystemNameVersion                 : 'Mac OS 12.3.1'
      OperatingSystemNameVersionMajor            : 'Mac OS 12'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '100.0'
      LayoutEngineVersionMajor                   : '100'
      LayoutEngineNameVersion                    : 'Blink 100.0'
      LayoutEngineNameVersionMajor               : 'Blink 100'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '100.0.4896.60'
      AgentVersionMajor                          : '100'
      AgentNameVersion                           : 'Chrome 100.0.4896.60'
      AgentNameVersionMajor                      : 'Chrome 100'
      UAClientHintArchitecture                   : 'arm'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '100'
      UAClientHintBrands_1_Brand                 : 'Google Chrome'
      UAClientHintBrands_1_Version               : '100'
      UAClientHintFullVersionList_0_Brand        : 'Chromium'
      UAClientHintFullVersionList_0_Version      : '100.0.4896.60'
      UAClientHintFullVersionList_1_Brand        : 'Google Chrome'
      UAClientHintFullVersionList_1_Version      : '100.0.4896.60'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'macOS'
      UAClientHintPlatformVersion                : '12.3.1'

- test:
    name: 'Opera Mobile 68 on Android 11 (Normal, Standard Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (Linux; Android 11; Nokia 7.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.88 Mobile Safari/537.36 OPR/68.2.3557.64219'
      Sec-CH-UA                                  : '" Not;A Brand";v="99", "Opera";v="85", "Chromium";v="99", "OperaMobile";v="68"' # MESSY! It says "Opera 85" AND "Opera Mobile 68"
      Sec-CH-UA-Mobile                           : '?1'
      Sec-CH-UA-Platform                         : '"Android"'
    expected:
      DeviceClass                                : 'Phone'
      DeviceName                                 : 'Nokia 7.2'
      DeviceBrand                                : 'Nokia'
      OperatingSystemClass                       : 'Mobile'
      OperatingSystemName                        : 'Android'
      OperatingSystemVersion                     : '11'
      OperatingSystemVersionMajor                : '11'
      OperatingSystemNameVersion                 : 'Android 11'
      OperatingSystemNameVersionMajor            : 'Android 11'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '99.0'
      LayoutEngineVersionMajor                   : '99'
      LayoutEngineNameVersion                    : 'Blink 99.0'
      LayoutEngineNameVersionMajor               : 'Blink 99'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Opera Mobile'
      AgentVersion                               : '68.2.3557.64219'
      AgentVersionMajor                          : '68'
      AgentNameVersion                           : 'Opera Mobile 68.2.3557.64219'
      AgentNameVersionMajor                      : 'Opera Mobile 68'
      UAClientHintBrands_0_Brand                 : 'Opera'
      UAClientHintBrands_0_Version               : '85'
      UAClientHintBrands_1_Brand                 : 'Chromium'
      UAClientHintBrands_1_Version               : '99'
      UAClientHintBrands_2_Brand                 : 'OperaMobile'
      UAClientHintBrands_2_Version               : '68'
      UAClientHintMobile                         : 'true'
      UAClientHintPlatform                       : 'Android'


- test:
    name: 'Opera Mobile 68 on Android 11 (Normal, Standard Client Hints)'
    input:
      User-Agent                                 :   'Mozilla/5.0 (Linux; Android 11; Nokia 7.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.88 Mobile Safari/537.36 OPR/68.2.3557.64219'
      Sec-CH-UA                                  :   '" Not;A Brand";v="99", "Opera";v="85", "Chromium";v="99", "OperaMobile";v="68"' # MESSY! It says "Opera 85" AND "Opera Mobile 68"
      Sec-CH-UA-Arch                             :   '""' # Present and just ""
      Sec-CH-UA-Full-Version-List                :   ''   # Present and empty string. Reported as a bug to Opera.
      Sec-CH-UA-Mobile                           :   '?1'
      Sec-CH-UA-Model                            :   '"Nokia 7.2"'
      Sec-CH-UA-Platform                         :   '"Android"'
      Sec-CH-UA-Platform-Version                 :   '"11"'
    expected:
      DeviceClass                                : 'Phone'
      DeviceName                                 : 'Nokia 7.2'
      DeviceBrand                                : 'Nokia'
      OperatingSystemClass                       : 'Mobile'
      OperatingSystemName                        : 'Android'
      OperatingSystemVersion                     : '11'
      OperatingSystemVersionMajor                : '11'
      OperatingSystemNameVersion                 : 'Android 11'
      OperatingSystemNameVersionMajor            : 'Android 11'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '99.0'
      LayoutEngineVersionMajor                   : '99'
      LayoutEngineNameVersion                    : 'Blink 99.0'
      LayoutEngineNameVersionMajor               : 'Blink 99'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Opera Mobile'
      AgentVersion                               : '68.2.3557.64219'
      AgentVersionMajor                          : '68'
      AgentNameVersion                           : 'Opera Mobile 68.2.3557.64219'
      AgentNameVersionMajor                      : 'Opera Mobile 68'
      UAClientHintBrands_0_Brand                 : 'Opera'
      UAClientHintBrands_0_Version               : '85'
      UAClientHintBrands_1_Brand                 : 'Chromium'
      UAClientHintBrands_1_Version               : '99'
      UAClientHintBrands_2_Brand                 : 'OperaMobile'
      UAClientHintBrands_2_Version               : '68'
      UAClientHintMobile                         : 'true'
      UAClientHintModel                          : 'Nokia 7.2'
      UAClientHintPlatform                       : 'Android'
      UAClientHintPlatformVersion                : '11'

- test:
    name: 'Opera 85 on Windows 7 (Normal, Standard Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36 OPR/85.0.4341.60'
      Sec-CH-UA                                  : '" Not A;Brand";v="99", "Chromium";v="99", "Opera";v="85"'
      Sec-CH-UA-Mobile                           : '?0'
      Sec-CH-UA-Platform                         : '"Windows"'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Windows NT'
      OperatingSystemVersion                     : '7'
      OperatingSystemVersionMajor                : '7'
      OperatingSystemNameVersion                 : 'Windows 7'
      OperatingSystemNameVersionMajor            : 'Windows 7'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '99.0'
      LayoutEngineVersionMajor                   : '99'
      LayoutEngineNameVersion                    : 'Blink 99.0'
      LayoutEngineNameVersionMajor               : 'Blink 99'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Opera'
      AgentVersion                               : '85.0.4341.60'
      AgentVersionMajor                          : '85'
      AgentNameVersion                           : 'Opera 85.0.4341.60'
      AgentNameVersionMajor                      : 'Opera 85'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '99'
      UAClientHintBrands_1_Brand                 : 'Opera'
      UAClientHintBrands_1_Version               : '85'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Windows'

- test:
    name: 'Opera 85 on Windows 7 (Normal, Full Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36 OPR/85.0.4341.60'
      Sec-CH-UA                                  : '" Not A;Brand";v="99", "Chromium";v="99", "Opera";v="85"'
      Sec-CH-UA-Arch                             : '"x86"'
      #                                                Bug has been reported to Opera: This is not version 99.0.4844.84  vvvvvvvvvvvv
      Sec-CH-UA-Full-Version-List                : '" Not A;Brand";v="99.0.0.0", "Chromium";v="99.0.4844.84", "Opera";v="99.0.4844.84"'
      Sec-CH-UA-Mobile                           : '?0'
      Sec-CH-UA-Model                            : '""'
      Sec-CH-UA-Platform                         : '"Windows"'
      Sec-CH-UA-Platform-Version                 : '"0.0.0"'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Windows NT'
      OperatingSystemVersion                     : '7'
      OperatingSystemVersionMajor                : '7'
      OperatingSystemNameVersion                 : 'Windows 7'
      OperatingSystemNameVersionMajor            : 'Windows 7'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '99.0'
      LayoutEngineVersionMajor                   : '99'
      LayoutEngineNameVersion                    : 'Blink 99.0'
      LayoutEngineNameVersionMajor               : 'Blink 99'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Opera'
      AgentVersion                               : '85.0.4341.60'
      AgentVersionMajor                          : '85'
      AgentNameVersion                           : 'Opera 85.0.4341.60'
      AgentNameVersionMajor                      : 'Opera 85'
      UAClientHintArchitecture                   : 'x86'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '99'
      UAClientHintBrands_1_Brand                 : 'Opera'
      UAClientHintBrands_1_Version               : '85'
      UAClientHintFullVersionList_0_Brand        : 'Chromium'
      UAClientHintFullVersionList_0_Version      : '99.0.4844.84'
      UAClientHintFullVersionList_1_Brand        : 'Opera'
      UAClientHintFullVersionList_1_Version      : '99.0.4844.84'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Windows'
      UAClientHintPlatformVersion                : '0.0.0' # This is NOT an allowed value for Windows

- test:
    name: 'Opera 85 on Linux (Normal, Full Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36 OPR/85.0.4341.60'
      Sec-CH-UA                                  : '" Not A;Brand";v="99", "Chromium";v="99", "Opera";v="85"'
      Sec-CH-UA-Arch                             : '"x86"'
      Sec-CH-UA-Full-Version-List                : '" Not A;Brand";v="99.0.0.0", "Chromium";v="99.0.4844.84", "Opera";v="99.0.4844.84"'
      Sec-CH-UA-Mobile                           : '?0'
      Sec-CH-UA-Model                            : '""'
      Sec-CH-UA-Platform                         : '"Linux"'
      Sec-CH-UA-Platform-Version                 : '"5.13.0"'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Linux Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Linux'
      OperatingSystemVersion                     : '5.13.0'
      OperatingSystemVersionMajor                : '5'
      OperatingSystemNameVersion                 : 'Linux 5.13.0'
      OperatingSystemNameVersionMajor            : 'Linux 5'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '99.0'
      LayoutEngineVersionMajor                   : '99'
      LayoutEngineNameVersion                    : 'Blink 99.0'
      LayoutEngineNameVersionMajor               : 'Blink 99'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Opera'
      AgentVersion                               : '85.0.4341.60'
      AgentVersionMajor                          : '85'
      AgentNameVersion                           : 'Opera 85.0.4341.60'
      AgentNameVersionMajor                      : 'Opera 85'

      UAClientHintArchitecture                   : 'x86'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '99'
      UAClientHintBrands_1_Brand                 : 'Opera'
      UAClientHintBrands_1_Version               : '85'
      UAClientHintFullVersionList_0_Brand        : 'Chromium'
      UAClientHintFullVersionList_0_Version      : '99.0.4844.84'
      UAClientHintFullVersionList_1_Brand        : 'Opera'
      UAClientHintFullVersionList_1_Version      : '99.0.4844.84'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Linux'
      UAClientHintPlatformVersion                : '5.13.0'

# Experiment to see what happens if you only provide some of the possible UA client hints
- test:
    name: 'Chrome 100 on MacOS 12.3.1 (Partial Client Hints)'
    input:
      User-Agent                                 : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36'
      Sec-CH-UA-Platform                         : '"macOS"'
      Sec-CH-UA-Platform-Version                 : '"12.3.1"'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Apple Macintosh'
      DeviceBrand                                : 'Apple'
      DeviceCpu                                  : 'Intel'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Mac OS'
      OperatingSystemVersion                     : '12.3.1'
      OperatingSystemVersionMajor                : '12'
      OperatingSystemNameVersion                 : 'Mac OS 12.3.1'
      OperatingSystemNameVersionMajor            : 'Mac OS 12'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '100.0'
      LayoutEngineVersionMajor                   : '100'
      LayoutEngineNameVersion                    : 'Blink 100.0'
      LayoutEngineNameVersionMajor               : 'Blink 100'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '100.0.4896.60'
      AgentVersionMajor                          : '100'
      AgentNameVersion                           : 'Chrome 100.0.4896.60'
      AgentNameVersionMajor                      : 'Chrome 100'

      UAClientHintPlatform                       : 'macOS'
      UAClientHintPlatformVersion                : '12.3.1'


# Chromium Version 101.0.4951.64 (Official Build) snap (64-bit) on Ubuntu 20.04 LTS
# NOTE: There is no Chromium tag so we see "Chrome" as the result.
- test:
    input:
      User-Agent                           : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Linux Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Linux'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Linux ??'
      OperatingSystemNameVersionMajor      : 'Linux ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '101.0'
      LayoutEngineVersionMajor             : '101'
      LayoutEngineNameVersion              : 'Blink 101.0'
      LayoutEngineNameVersionMajor         : 'Blink 101'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '101.0.4951.64'
      AgentVersionMajor                    : '101'
      AgentNameVersion                     : 'Chrome 101.0.4951.64'
      AgentNameVersionMajor                : 'Chrome 101'


# Chromium Version 101.0.4951.64 (Official Build) snap (64-bit) on Ubuntu 20.04 LTS
# NOTE: There is no Chromium tag so it is a bit unclear which version tag is to be used.
- test:
    input:
      User-Agent                           : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36'
      Sec-Ch-Ua                            : '" Not A;Brand";v="99", "Chromium";v="101"'
      Sec-Ch-Ua-Mobile                     : '?0'
      Sec-Ch-Ua-Platform                   : '"Linux"'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Linux Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Linux'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Linux ??'
      OperatingSystemNameVersionMajor      : 'Linux ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '101.0'
      LayoutEngineVersionMajor             : '101'
      LayoutEngineNameVersion              : 'Blink 101.0'
      LayoutEngineNameVersionMajor         : 'Blink 101'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chromium'
      AgentVersion                         : '101.0.4951.64'
      AgentVersionMajor                    : '101'
      AgentNameVersion                     : 'Chromium 101.0.4951.64'
      AgentNameVersionMajor                : 'Chromium 101'
      UAClientHintBrands_0_Brand           : 'Chromium'
      UAClientHintBrands_0_Version         : '101'
      UAClientHintMobile                   : 'false'
      UAClientHintPlatform                 : 'Linux'


# Chromium Version 101.0.4951.64 (Official Build) snap (64-bit) on Ubuntu 20.04 LTS
# NOTE: There is no Chromium tag so we use the Sec-Ch-Ua-Full-Version-List provided version.
#       To prove the right one was used the Chrome version was changed in this testcase.
- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.111.111 Safari/537.36'
      Sec-Ch-Ua                                  : '" Not A;Brand";v="99", "Chromium";v="101"'
      Sec-Ch-Ua-Arch                             : '"x86"'
      Sec-Ch-Ua-Bitness                          : '"64"'
      Sec-Ch-Ua-Full-Version                     : '"101.0.4951.64"'
      Sec-Ch-Ua-Full-Version-List                : '" Not A;Brand";v="99.0.0.0", "Chromium";v="101.0.4951.64"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Model                            : '""'
      Sec-Ch-Ua-Platform                         : '"Linux"'
      Sec-Ch-Ua-Platform-Version                 : '"5.13.0"'
      Sec-Ch-Ua-Wow64                            : '?0'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Linux Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Linux'
      OperatingSystemVersion                     : '5.13.0'
      OperatingSystemVersionMajor                : '5'
      OperatingSystemNameVersion                 : 'Linux 5.13.0'
      OperatingSystemNameVersionMajor            : 'Linux 5'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '101.0'
      LayoutEngineVersionMajor                   : '101'
      LayoutEngineNameVersion                    : 'Blink 101.0'
      LayoutEngineNameVersionMajor               : 'Blink 101'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chromium'
      AgentVersion                               : '101.0.4951.64'
      AgentVersionMajor                          : '101'
      AgentNameVersion                           : 'Chromium 101.0.4951.64'
      AgentNameVersionMajor                      : 'Chromium 101'
      UAClientHintArchitecture                   : 'x86'
      UAClientHintBitness                        : '64'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '101'
      UAClientHintFullVersion                    : '101.0.4951.64'
      UAClientHintFullVersionList_0_Brand        : 'Chromium'
      UAClientHintFullVersionList_0_Version      : '101.0.4951.64'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Linux'
      UAClientHintPlatformVersion                : '5.13.0'
      UAClientHintWow64                          : 'false'


- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
      Sec-Ch-Ua                                  : '"Chromium";v="95", ";Not A Brand";v="99"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Platform                         : '"Linux"'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Linux Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Linux'
      OperatingSystemVersion                     : '??'
      OperatingSystemVersionMajor                : '??'
      OperatingSystemNameVersion                 : 'Linux ??'
      OperatingSystemNameVersionMajor            : 'Linux ??'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '95.0'
      LayoutEngineVersionMajor                   : '95'
      LayoutEngineNameVersion                    : 'Blink 95.0'
      LayoutEngineNameVersionMajor               : 'Blink 95'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chromium'
      AgentVersion                               : '95.0.4638.69'
      AgentVersionMajor                          : '95'
      AgentNameVersion                           : 'Chromium 95.0.4638.69'
      AgentNameVersionMajor                      : 'Chromium 95'

      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '95'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Linux'


- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
      Sec-Ch-Ua                                  : '"Chromium";v="95", ";Not A Brand";v="99"'
      Sec-Ch-Ua-Arch                             : '"x86"'
      Sec-Ch-Ua-Bitness                          : '"64"'
      Sec-Ch-Ua-Full-Version                     : '"95.0.4638.69"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Model                            : '""'
      Sec-Ch-Ua-Platform                         : '"Linux"'
      Sec-Ch-Ua-Platform-Version                 : '"5.15.0"'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Linux Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Linux'
      OperatingSystemVersion                     : '5.15.0'
      OperatingSystemVersionMajor                : '5'
      OperatingSystemNameVersion                 : 'Linux 5.15.0'
      OperatingSystemNameVersionMajor            : 'Linux 5'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '95.0'
      LayoutEngineVersionMajor                   : '95'
      LayoutEngineNameVersion                    : 'Blink 95.0'
      LayoutEngineNameVersionMajor               : 'Blink 95'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chromium'
      AgentVersion                               : '95.0.4638.69'
      AgentVersionMajor                          : '95'
      AgentNameVersion                           : 'Chromium 95.0.4638.69'
      AgentNameVersionMajor                      : 'Chromium 95'

      UAClientHintArchitecture                   : 'x86'
      UAClientHintBitness                        : '64'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '95'
      UAClientHintFullVersion                    : '95.0.4638.69'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Linux'
      UAClientHintPlatformVersion                : '5.15.0'


# This one has a different CPU type in the useragent compared to the Sec-Ch-Ua-Arch
- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'
      Sec-Ch-Ua                                  : '"Google Chrome";v="105", "Not)A;Brand";v="8", "Chromium";v="105"'
      Sec-Ch-Ua-Arch                             : '"arm"'
      Sec-Ch-Ua-Bitness                          : '"64"'
      Sec-Ch-Ua-Full-Version                     : '"105.0.5195.125"'
      Sec-Ch-Ua-Full-Version-List                : '"Google Chrome";v="105.0.5195.125", "Not)A;Brand";v="8.0.0.0", "Chromium";v="105.0.5195.125"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Model                            : ''
      Sec-Ch-Ua-Platform                         : '"macOS"'
      Sec-Ch-Ua-Platform-Version                 : '"12.2.1"'
      Sec-Ch-Ua-Wow64                            : '?0'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Apple Macintosh'
      DeviceBrand                                : 'Apple'
      DeviceCpu                                  : 'ARM'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Mac OS'
      OperatingSystemVersion                     : '12.2.1'
      OperatingSystemVersionMajor                : '12'
      OperatingSystemNameVersion                 : 'Mac OS 12.2.1'
      OperatingSystemNameVersionMajor            : 'Mac OS 12'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '105.0'
      LayoutEngineVersionMajor                   : '105'
      LayoutEngineNameVersion                    : 'Blink 105.0'
      LayoutEngineNameVersionMajor               : 'Blink 105'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '105.0.5195.125'
      AgentVersionMajor                          : '105'
      AgentNameVersion                           : 'Chrome 105.0.5195.125'
      AgentNameVersionMajor                      : 'Chrome 105'
      UAClientHintArchitecture                   : 'arm'
      UAClientHintBitness                        : '64'
      UAClientHintBrands_0_Brand                 : 'Google Chrome'
      UAClientHintBrands_0_Version               : '105'
      UAClientHintBrands_1_Brand                 : 'Chromium'
      UAClientHintBrands_1_Version               : '105'
      UAClientHintFullVersion                    : '105.0.5195.125'
      UAClientHintFullVersionList_0_Brand        : 'Google Chrome'
      UAClientHintFullVersionList_0_Version      : '105.0.5195.125'
      UAClientHintFullVersionList_1_Brand        : 'Chromium'
      UAClientHintFullVersionList_1_Version      : '105.0.5195.125'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'macOS'
      UAClientHintPlatformVersion                : '12.2.1'
      UAClientHintWow64                          : 'false'

# https://github.com/nielsbasjes/yauaa/issues/786
# NOTE: Missing Edg from useragent.
- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'
      Sec-Ch-Ua                                  : '"Chromium";v="106", "Microsoft Edge";v="106", "Not;A=Brand";v="99"'
      Sec-Ch-Ua-Arch                             : '"x86"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Model                            : ''
      Sec-Ch-Ua-Platform                         : '"Windows"'
      Sec-Ch-Ua-Platform-Version                 : '"14.0.0"'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Windows NT'
      OperatingSystemVersion                     : '11'
      OperatingSystemVersionMajor                : '11'
      OperatingSystemNameVersion                 : 'Windows 11'
      OperatingSystemNameVersionMajor            : 'Windows 11'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '106'
      LayoutEngineVersionMajor                   : '106'
      LayoutEngineNameVersion                    : 'Blink 106'
      LayoutEngineNameVersionMajor               : 'Blink 106'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Edge'
      AgentVersion                               : '106'
      AgentVersionMajor                          : '106'
      AgentNameVersion                           : 'Edge 106'
      AgentNameVersionMajor                      : 'Edge 106'
      UAClientHintArchitecture                   : 'x86'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '106'
      UAClientHintBrands_1_Brand                 : 'Microsoft Edge'
      UAClientHintBrands_1_Version               : '106'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Windows'
      UAClientHintPlatformVersion                : '14.0.0'


# Faked test case to ensure without client hints we get deviceClass  "Mobile"
- test:
    input:
      User-Agent                           : 'Dalvik/1.2.3 (Android 10)'
    expected:
      DeviceClass                          : 'Mobile'
      DeviceName                           : 'Android Mobile'
      DeviceBrand                          : 'Unknown'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '10'
      OperatingSystemVersionMajor          : '10'
      OperatingSystemNameVersion           : 'Android 10'
      OperatingSystemNameVersionMajor      : 'Android 10'
      LayoutEngineClass                    : 'Unknown'
      LayoutEngineName                     : 'Unknown'
      LayoutEngineVersion                  : '??'
      LayoutEngineVersionMajor             : '??'
      LayoutEngineNameVersion              : 'Unknown ??'
      LayoutEngineNameVersionMajor         : 'Unknown ??'
      AgentClass                           : 'Browser'
      AgentName                            : 'Unknown'
      AgentVersion                         : '??'
      AgentVersionMajor                    : '??'
      AgentNameVersion                     : 'Unknown ??'
      AgentNameVersionMajor                : 'Unknown ??'


# Faked test case to ensure we can improve the deviceClass from "Mobile" to "Phone"
- test:
    input:
      User-Agent                           : 'Dalvik/1.2.3 (Android 10)'
      Sec-Ch-Ua-Mobile                     : '?1'
    expected:
      DeviceClass                          : 'Phone'
      DeviceName                           : 'Android Mobile'
      DeviceBrand                          : 'Unknown'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '10'
      OperatingSystemVersionMajor          : '10'
      OperatingSystemNameVersion           : 'Android 10'
      OperatingSystemNameVersionMajor      : 'Android 10'
      LayoutEngineClass                    : 'Unknown'
      LayoutEngineName                     : 'Unknown'
      LayoutEngineVersion                  : '??'
      LayoutEngineVersionMajor             : '??'
      LayoutEngineNameVersion              : 'Unknown ??'
      LayoutEngineNameVersionMajor         : 'Unknown ??'
      AgentClass                           : 'Browser'
      AgentName                            : 'Unknown'
      AgentVersion                         : '??'
      AgentVersionMajor                    : '??'
      AgentNameVersion                     : 'Unknown ??'
      AgentNameVersionMajor                : 'Unknown ??'
      UAClientHintMobile                   : 'true'


# Faked test case to ensure we can improve the deviceClass from "Mobile" to "Tablet"
- test:
    input:
      User-Agent                           : 'Dalvik/1.2.3 (Android 10)'
      Sec-Ch-Ua-Mobile                     : '?0'
    expected:
      DeviceClass                          : 'Tablet'
      DeviceName                           : 'Android Mobile'
      DeviceBrand                          : 'Unknown'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '10'
      OperatingSystemVersionMajor          : '10'
      OperatingSystemNameVersion           : 'Android 10'
      OperatingSystemNameVersionMajor      : 'Android 10'
      LayoutEngineClass                    : 'Unknown'
      LayoutEngineName                     : 'Unknown'
      LayoutEngineVersion                  : '??'
      LayoutEngineVersionMajor             : '??'
      LayoutEngineNameVersion              : 'Unknown ??'
      LayoutEngineNameVersionMajor         : 'Unknown ??'
      AgentClass                           : 'Browser'
      AgentName                            : 'Unknown'
      AgentVersion                         : '??'
      AgentVersionMajor                    : '??'
      AgentNameVersion                     : 'Unknown ??'
      AgentNameVersionMajor                : 'Unknown ??'
      UAClientHintMobile                   : 'false'


# Faked test case for the architecture and bitness headers
- test:
    input:
      User-Agent                           : 'Dummy/1.2.3'
      Sec-Ch-Ua-Arch                       : '"x86"'
      Sec-Ch-Ua-Bitness                    : '"32"'
    expected:
      UAClientHintArchitecture             : 'x86'
      UAClientHintBitness                  : '32'
      DeviceCpu                            : 'Intel x86'
      DeviceCpuBits                        : '32'

      AgentClass                           : 'Special'
      AgentName                            : 'Dummy'
      AgentVersion                         : '1.2.3'
      AgentVersionMajor                    : '1'
      AgentNameVersion                     : 'Dummy 1.2.3'
      AgentNameVersionMajor                : 'Dummy 1'


# Faked test case for the architecture and bitness headers
- test:
    input:
      User-Agent                           : 'Dummy/1.2.3'
      Sec-Ch-Ua-Arch                       : '"x86"'
      Sec-Ch-Ua-Bitness                    : '"64"'
    expected:
      UAClientHintArchitecture             : 'x86'
      UAClientHintBitness                  : '64'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'

      AgentClass                           : 'Special'
      AgentName                            : 'Dummy'
      AgentVersion                         : '1.2.3'
      AgentVersionMajor                    : '1'
      AgentNameVersion                     : 'Dummy 1.2.3'
      AgentNameVersionMajor                : 'Dummy 1'

# Faked test case for the architecture and bitness headers
- test:
    input:
      User-Agent                           : 'Dummy/1.2.3'
      Sec-Ch-Ua-Arch                       : '"Basjes"'
      Sec-Ch-Ua-Bitness                    : '"42"'
    expected:
      UAClientHintArchitecture             : 'Basjes'
      UAClientHintBitness                  : '42'
      DeviceCpu                            : 'Basjes'
      DeviceCpuBits                        : '42'

      AgentClass                           : 'Special'
      AgentName                            : 'Dummy'
      AgentVersion                         : '1.2.3'
      AgentVersionMajor                    : '1'
      AgentNameVersion                     : 'Dummy 1.2.3'
      AgentNameVersionMajor                : 'Dummy 1'


# The "Not a brand" tag does not contain special characters.
- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.61'
      Sec-Ch-Ua                                  : '"Not_A Brand";v="99", "Microsoft Edge";v="109", "Chromium";v="109"'
      Sec-Ch-Ua-Arch                             : '"x86"'
      Sec-Ch-Ua-Bitness                          : '"64"'
      Sec-Ch-Ua-Full-Version                     : '"109.0.1518.61"'
      Sec-Ch-Ua-Full-Version-List                : '"Not_A Brand";v="99.0.0.0", "Microsoft Edge";v="109.0.1518.61", "Chromium";v="109.0.5414.87"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Model                            : '""'
      Sec-Ch-Ua-Platform                         : '"Windows"'
      Sec-Ch-Ua-Platform-Version                 : '"14.0.0"'
      Sec-Ch-Ua-Wow64                            : '?0'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Windows NT'
      OperatingSystemVersion                     : '11'
      OperatingSystemVersionMajor                : '11'
      OperatingSystemNameVersion                 : 'Windows 11'
      OperatingSystemNameVersionMajor            : 'Windows 11'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '109.0'
      LayoutEngineVersionMajor                   : '109'
      LayoutEngineNameVersion                    : 'Blink 109.0'
      LayoutEngineNameVersionMajor               : 'Blink 109'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Edge'
      AgentVersion                               : '109.0.1518.61'
      AgentVersionMajor                          : '109'
      AgentNameVersion                           : 'Edge 109.0.1518.61'
      AgentNameVersionMajor                      : 'Edge 109'

      UAClientHintArchitecture                   : 'x86'
      UAClientHintBitness                        : '64'
      UAClientHintBrands_0_Brand                 : 'Microsoft Edge'
      UAClientHintBrands_0_Version               : '109'
      UAClientHintBrands_1_Brand                 : 'Chromium'
      UAClientHintBrands_1_Version               : '109'
      UAClientHintFullVersion                    : '109.0.1518.61'
      UAClientHintFullVersionList_0_Brand        : 'Microsoft Edge'
      UAClientHintFullVersionList_0_Version      : '109.0.1518.61'
      UAClientHintFullVersionList_1_Brand        : 'Chromium'
      UAClientHintFullVersionList_1_Version      : '109.0.5414.87'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Windows'
      UAClientHintPlatformVersion                : '14.0.0'
      UAClientHintWow64                          : 'false'


- test:
    input:
      User-Agent                           : 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Mobile Safari/537.36'
      Sec-Ch-Ua                            : '"Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"'
      Sec-Ch-Ua-Mobile                     : '?1'
      Sec-Ch-Ua-Platform                   : '"Android"'
    expected:
      DeviceClass                          : 'Phone'
      DeviceName                           : 'Android Mobile'
      DeviceBrand                          : 'Unknown'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Android ??'
      OperatingSystemNameVersionMajor      : 'Android ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '109'
      LayoutEngineVersionMajor             : '109'
      LayoutEngineNameVersion              : 'Blink 109'
      LayoutEngineNameVersionMajor         : 'Blink 109'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '109'
      AgentVersionMajor                    : '109'
      AgentNameVersion                     : 'Chrome 109'
      AgentNameVersionMajor                : 'Chrome 109'

      UAClientHintBrands_0_Brand           : 'Google Chrome'
      UAClientHintBrands_0_Version         : '109'
      UAClientHintBrands_1_Brand           : 'Chromium'
      UAClientHintBrands_1_Version         : '109'
      UAClientHintMobile                   : 'true'
      UAClientHintPlatform                 : 'Android'


- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Mobile Safari/537.36'
      Sec-Ch-Ua                                  : '"Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"'
      Sec-Ch-Ua-Arch                             : '""'
      Sec-Ch-Ua-Bitness                          : '""'
      Sec-Ch-Ua-Full-Version                     : '"109.0.5414.86"'
      Sec-Ch-Ua-Full-Version-List                : '"Not_A Brand";v="99.0.0.0", "Google Chrome";v="109.0.5414.86", "Chromium";v="109.0.5414.86"'
      Sec-Ch-Ua-Mobile                           : '?1'
      Sec-Ch-Ua-Model                            : '"Nokia 7.2"'
      Sec-Ch-Ua-Platform                         : '"Android"'
      Sec-Ch-Ua-Platform-Version                 : '"11.0.0"'
      Sec-Ch-Ua-Wow64                            : '?0'
    expected:
      DeviceClass                                : 'Phone'
      DeviceName                                 : 'Nokia 7.2'
      DeviceBrand                                : 'Nokia'
      OperatingSystemClass                       : 'Mobile'
      OperatingSystemName                        : 'Android'
      OperatingSystemVersion                     : '11.0.0'
      OperatingSystemVersionMajor                : '11'
      OperatingSystemNameVersion                 : 'Android 11.0.0'
      OperatingSystemNameVersionMajor            : 'Android 11'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '109.0'
      LayoutEngineVersionMajor                   : '109'
      LayoutEngineNameVersion                    : 'Blink 109.0'
      LayoutEngineNameVersionMajor               : 'Blink 109'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '109.0.5414.86'
      AgentVersionMajor                          : '109'
      AgentNameVersion                           : 'Chrome 109.0.5414.86'
      AgentNameVersionMajor                      : 'Chrome 109'

      UAClientHintBrands_0_Brand                 : 'Google Chrome'
      UAClientHintBrands_0_Version               : '109'
      UAClientHintBrands_1_Brand                 : 'Chromium'
      UAClientHintBrands_1_Version               : '109'
      UAClientHintFullVersion                    : '109.0.5414.86'
      UAClientHintFullVersionList_0_Brand        : 'Google Chrome'
      UAClientHintFullVersionList_0_Version      : '109.0.5414.86'
      UAClientHintFullVersionList_1_Brand        : 'Chromium'
      UAClientHintFullVersionList_1_Version      : '109.0.5414.86'
      UAClientHintMobile                         : 'true'
      UAClientHintModel                          : 'Nokia 7.2'
      UAClientHintPlatform                       : 'Android'
      UAClientHintPlatformVersion                : '11.0.0'
      UAClientHintWow64                          : 'false'


- test:
    input:
      User-Agent                           : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'
      Sec-Ch-Ua                            : '"Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"'
      Sec-Ch-Ua-Mobile                     : '?0'
      Sec-Ch-Ua-Platform                   : '"macOS"'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Apple Macintosh'
      DeviceBrand                          : 'Apple'
      DeviceCpu                            : 'Intel'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Mac OS'
      OperatingSystemVersion               : '>=10.15.7'
      OperatingSystemVersionMajor          : '>=10.15'
      OperatingSystemNameVersion           : 'Mac OS >=10.15.7'
      OperatingSystemNameVersionMajor      : 'Mac OS >=10.15'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '109'
      LayoutEngineVersionMajor             : '109'
      LayoutEngineNameVersion              : 'Blink 109'
      LayoutEngineNameVersionMajor         : 'Blink 109'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '109'
      AgentVersionMajor                    : '109'
      AgentNameVersion                     : 'Chrome 109'
      AgentNameVersionMajor                : 'Chrome 109'

      UAClientHintBrands_0_Brand           : 'Google Chrome'
      UAClientHintBrands_0_Version         : '109'
      UAClientHintBrands_1_Brand           : 'Chromium'
      UAClientHintBrands_1_Version         : '109'
      UAClientHintMobile                   : 'false'
      UAClientHintPlatform                 : 'macOS'


- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'
      Sec-Ch-Ua                                  : '"Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"'
      Sec-Ch-Ua-Arch                             : '"x86"'
      Sec-Ch-Ua-Bitness                          : '"64"'
      Sec-Ch-Ua-Full-Version                     : '"109.0.5414.87"'
      Sec-Ch-Ua-Full-Version-List                : '"Not_A Brand";v="99.0.0.0", "Google Chrome";v="109.0.5414.87", "Chromium";v="109.0.5414.87"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Model                            : '""'
      Sec-Ch-Ua-Platform                         : '"macOS"'
      Sec-Ch-Ua-Platform-Version                 : '"13.1.0"'
      Sec-Ch-Ua-Wow64                            : '?0'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Apple Macintosh'
      DeviceBrand                                : 'Apple'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Mac OS'
      OperatingSystemVersion                     : '13.1.0'
      OperatingSystemVersionMajor                : '13'
      OperatingSystemNameVersion                 : 'Mac OS 13.1.0'
      OperatingSystemNameVersionMajor            : 'Mac OS 13'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '109.0'
      LayoutEngineVersionMajor                   : '109'
      LayoutEngineNameVersion                    : 'Blink 109.0'
      LayoutEngineNameVersionMajor               : 'Blink 109'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '109.0.5414.87'
      AgentVersionMajor                          : '109'
      AgentNameVersion                           : 'Chrome 109.0.5414.87'
      AgentNameVersionMajor                      : 'Chrome 109'

      UAClientHintArchitecture                   : 'x86'
      UAClientHintBitness                        : '64'
      UAClientHintBrands_0_Brand                 : 'Google Chrome'
      UAClientHintBrands_0_Version               : '109'
      UAClientHintBrands_1_Brand                 : 'Chromium'
      UAClientHintBrands_1_Version               : '109'
      UAClientHintFullVersion                    : '109.0.5414.87'
      UAClientHintFullVersionList_0_Brand        : 'Google Chrome'
      UAClientHintFullVersionList_0_Version      : '109.0.5414.87'
      UAClientHintFullVersionList_1_Brand        : 'Chromium'
      UAClientHintFullVersionList_1_Version      : '109.0.5414.87'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'macOS'
      UAClientHintPlatformVersion                : '13.1.0'
      UAClientHintWow64                          : 'false'


- test:
    input:
      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'
      Sec-Ch-Ua                            : '"Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"'
      Sec-Ch-Ua-Mobile                     : '?0'
      Sec-Ch-Ua-Platform                   : '"Windows"'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Windows NT'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Windows NT ??'
      OperatingSystemNameVersionMajor      : 'Windows NT ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '109'
      LayoutEngineVersionMajor             : '109'
      LayoutEngineNameVersion              : 'Blink 109'
      LayoutEngineNameVersionMajor         : 'Blink 109'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '109'
      AgentVersionMajor                    : '109'
      AgentNameVersion                     : 'Chrome 109'
      AgentNameVersionMajor                : 'Chrome 109'

      UAClientHintBrands_0_Brand           : 'Google Chrome'
      UAClientHintBrands_0_Version         : '109'
      UAClientHintBrands_1_Brand           : 'Chromium'
      UAClientHintBrands_1_Version         : '109'
      UAClientHintMobile                   : 'false'
      UAClientHintPlatform                 : 'Windows'


- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'
      Sec-Ch-Ua                                  : '"Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"'
      Sec-Ch-Ua-Arch                             : '"x86"'
      Sec-Ch-Ua-Bitness                          : '"64"'
      Sec-Ch-Ua-Full-Version                     : '"109.0.5414.75"'
      Sec-Ch-Ua-Full-Version-List                : '"Not_A Brand";v="99.0.0.0", "Google Chrome";v="109.0.5414.75", "Chromium";v="109.0.5414.75"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Model                            : '""'
      Sec-Ch-Ua-Platform                         : '"Windows"'
      Sec-Ch-Ua-Platform-Version                 : '"14.0.0"'
      Sec-Ch-Ua-Wow64                            : '?0'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Windows NT'
      OperatingSystemVersion                     : '11'
      OperatingSystemVersionMajor                : '11'
      OperatingSystemNameVersion                 : 'Windows 11'
      OperatingSystemNameVersionMajor            : 'Windows 11'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '109.0'
      LayoutEngineVersionMajor                   : '109'
      LayoutEngineNameVersion                    : 'Blink 109.0'
      LayoutEngineNameVersionMajor               : 'Blink 109'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '109.0.5414.75'
      AgentVersionMajor                          : '109'
      AgentNameVersion                           : 'Chrome 109.0.5414.75'
      AgentNameVersionMajor                      : 'Chrome 109'

      UAClientHintArchitecture                   : 'x86'
      UAClientHintBitness                        : '64'
      UAClientHintBrands_0_Brand                 : 'Google Chrome'
      UAClientHintBrands_0_Version               : '109'
      UAClientHintBrands_1_Brand                 : 'Chromium'
      UAClientHintBrands_1_Version               : '109'
      UAClientHintFullVersion                    : '109.0.5414.75'
      UAClientHintFullVersionList_0_Brand        : 'Google Chrome'
      UAClientHintFullVersionList_0_Version      : '109.0.5414.75'
      UAClientHintFullVersionList_1_Brand        : 'Chromium'
      UAClientHintFullVersionList_1_Version      : '109.0.5414.75'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Windows'
      UAClientHintPlatformVersion                : '14.0.0'
      UAClientHintWow64                          : 'false'


- test:
    input:
      User-Agent                           : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'
      Sec-Ch-Ua                            : '"Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"'
      Sec-Ch-Ua-Mobile                     : '?0'
      Sec-Ch-Ua-Platform                   : '"Linux"'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Linux Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Linux'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Linux ??'
      OperatingSystemNameVersionMajor      : 'Linux ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '109'
      LayoutEngineVersionMajor             : '109'
      LayoutEngineNameVersion              : 'Blink 109'
      LayoutEngineNameVersionMajor         : 'Blink 109'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '109'
      AgentVersionMajor                    : '109'
      AgentNameVersion                     : 'Chrome 109'
      AgentNameVersionMajor                : 'Chrome 109'

      UAClientHintBrands_0_Brand           : 'Google Chrome'
      UAClientHintBrands_0_Version         : '109'
      UAClientHintBrands_1_Brand           : 'Chromium'
      UAClientHintBrands_1_Version         : '109'
      UAClientHintMobile                   : 'false'
      UAClientHintPlatform                 : 'Linux'


- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'
      Sec-Ch-Ua                                  : '"Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"'
      Sec-Ch-Ua-Arch                             : '"x86"'
      Sec-Ch-Ua-Bitness                          : '"64"'
      Sec-Ch-Ua-Full-Version                     : '"109.0.5414.74"'
      Sec-Ch-Ua-Full-Version-List                : '"Not_A Brand";v="99.0.0.0", "Google Chrome";v="109.0.5414.74", "Chromium";v="109.0.5414.74"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Model                            : '""'
      Sec-Ch-Ua-Platform                         : '"Linux"'
      Sec-Ch-Ua-Platform-Version                 : '"5.15.0"'
      Sec-Ch-Ua-Wow64                            : '?0'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Linux Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Linux'
      OperatingSystemVersion                     : '5.15.0'
      OperatingSystemVersionMajor                : '5'
      OperatingSystemNameVersion                 : 'Linux 5.15.0'
      OperatingSystemNameVersionMajor            : 'Linux 5'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '109.0'
      LayoutEngineVersionMajor                   : '109'
      LayoutEngineNameVersion                    : 'Blink 109.0'
      LayoutEngineNameVersionMajor               : 'Blink 109'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '109.0.5414.74'
      AgentVersionMajor                          : '109'
      AgentNameVersion                           : 'Chrome 109.0.5414.74'
      AgentNameVersionMajor                      : 'Chrome 109'

      UAClientHintArchitecture                   : 'x86'
      UAClientHintBitness                        : '64'
      UAClientHintBrands_0_Brand                 : 'Google Chrome'
      UAClientHintBrands_0_Version               : '109'
      UAClientHintBrands_1_Brand                 : 'Chromium'
      UAClientHintBrands_1_Version               : '109'
      UAClientHintFullVersion                    : '109.0.5414.74'
      UAClientHintFullVersionList_0_Brand        : 'Google Chrome'
      UAClientHintFullVersionList_0_Version      : '109.0.5414.74'
      UAClientHintFullVersionList_1_Brand        : 'Chromium'
      UAClientHintFullVersionList_1_Version      : '109.0.5414.74'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Linux'
      UAClientHintPlatformVersion                : '5.15.0'
      UAClientHintWow64                          : 'false'


- test:
    input:
      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.61'
      Sec-Ch-Ua                            : '"Not_A Brand";v="99", "Microsoft Edge";v="109", "Chromium";v="109"'
      Sec-Ch-Ua-Mobile                     : '?0'
      Sec-Ch-Ua-Platform                   : '"Windows"'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Windows NT'
      OperatingSystemVersion               : '>=10'
      OperatingSystemVersionMajor          : '>=10'
      OperatingSystemNameVersion           : 'Windows >=10'
      OperatingSystemNameVersionMajor      : 'Windows >=10'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '109'
      LayoutEngineVersionMajor             : '109'
      LayoutEngineNameVersion              : 'Blink 109'
      LayoutEngineNameVersionMajor         : 'Blink 109'
      AgentClass                           : 'Browser'
      AgentName                            : 'Edge'
      AgentVersion                         : '109'
      AgentVersionMajor                    : '109'
      AgentNameVersion                     : 'Edge 109'
      AgentNameVersionMajor                : 'Edge 109'

      UAClientHintBrands_0_Brand           : 'Microsoft Edge'
      UAClientHintBrands_0_Version         : '109'
      UAClientHintBrands_1_Brand           : 'Chromium'
      UAClientHintBrands_1_Version         : '109'
      UAClientHintMobile                   : 'false'
      UAClientHintPlatform                 : 'Windows'


- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.61'
      Sec-Ch-Ua                                  : '"Not_A Brand";v="99", "Microsoft Edge";v="109", "Chromium";v="109"'
      Sec-Ch-Ua-Arch                             : '"x86"'
      Sec-Ch-Ua-Bitness                          : '"64"'
      Sec-Ch-Ua-Full-Version                     : '"109.0.1518.61"'
      Sec-Ch-Ua-Full-Version-List                : '"Not_A Brand";v="99.0.0.0", "Microsoft Edge";v="109.0.1518.61", "Chromium";v="109.0.5414.87"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Model                            : '""'
      Sec-Ch-Ua-Platform                         : '"Windows"'
      Sec-Ch-Ua-Platform-Version                 : '"15.0.0"'
      Sec-Ch-Ua-Wow64                            : '?0'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Windows NT'
      OperatingSystemVersion                     : '11'
      OperatingSystemVersionMajor                : '11'
      OperatingSystemNameVersion                 : 'Windows 11'
      OperatingSystemNameVersionMajor            : 'Windows 11'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '109.0'
      LayoutEngineVersionMajor                   : '109'
      LayoutEngineNameVersion                    : 'Blink 109.0'
      LayoutEngineNameVersionMajor               : 'Blink 109'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Edge'
      AgentVersion                               : '109.0.1518.61'
      AgentVersionMajor                          : '109'
      AgentNameVersion                           : 'Edge 109.0.1518.61'
      AgentNameVersionMajor                      : 'Edge 109'

      UAClientHintArchitecture                   : 'x86'
      UAClientHintBitness                        : '64'
      UAClientHintBrands_0_Brand                 : 'Microsoft Edge'
      UAClientHintBrands_0_Version               : '109'
      UAClientHintBrands_1_Brand                 : 'Chromium'
      UAClientHintBrands_1_Version               : '109'
      UAClientHintFullVersion                    : '109.0.1518.61'
      UAClientHintFullVersionList_0_Brand        : 'Microsoft Edge'
      UAClientHintFullVersionList_0_Version      : '109.0.1518.61'
      UAClientHintFullVersionList_1_Brand        : 'Chromium'
      UAClientHintFullVersionList_1_Version      : '109.0.5414.87'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Windows'
      UAClientHintPlatformVersion                : '15.0.0'
      UAClientHintWow64                          : 'false'


- test:
    input:
      User-Agent                           : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.52'
      Sec-Ch-Ua                            : '"Not_A Brand";v="99", "Microsoft Edge";v="109", "Chromium";v="109"'
      Sec-Ch-Ua-Mobile                     : '?0'
      Sec-Ch-Ua-Platform                   : '"Linux"'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Linux Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Linux'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Linux ??'
      OperatingSystemNameVersionMajor      : 'Linux ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '109'
      LayoutEngineVersionMajor             : '109'
      LayoutEngineNameVersion              : 'Blink 109'
      LayoutEngineNameVersionMajor         : 'Blink 109'
      AgentClass                           : 'Browser'
      AgentName                            : 'Edge'
      AgentVersion                         : '109'
      AgentVersionMajor                    : '109'
      AgentNameVersion                     : 'Edge 109'
      AgentNameVersionMajor                : 'Edge 109'

      UAClientHintBrands_0_Brand           : 'Microsoft Edge'
      UAClientHintBrands_0_Version         : '109'
      UAClientHintBrands_1_Brand           : 'Chromium'
      UAClientHintBrands_1_Version         : '109'
      UAClientHintMobile                   : 'false'
      UAClientHintPlatform                 : 'Linux'


- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.52'
      Sec-Ch-Ua                                  : '"Not_A Brand";v="99", "Microsoft Edge";v="109", "Chromium";v="109"'
      Sec-Ch-Ua-Arch                             : '"x86"'
      Sec-Ch-Ua-Bitness                          : '"64"'
      Sec-Ch-Ua-Full-Version                     : '"109.0.1518.52"'
      Sec-Ch-Ua-Full-Version-List                : '"Not_A Brand";v="99.0.0.0", "Microsoft Edge";v="109.0.1518.52", "Chromium";v="109.0.5414.87"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Model                            : '""'
      Sec-Ch-Ua-Platform                         : '"Linux"'
      Sec-Ch-Ua-Platform-Version                 : '"5.15.0"'
      Sec-Ch-Ua-Wow64                            : '?0'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Linux Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Linux'
      OperatingSystemVersion                     : '5.15.0'
      OperatingSystemVersionMajor                : '5'
      OperatingSystemNameVersion                 : 'Linux 5.15.0'
      OperatingSystemNameVersionMajor            : 'Linux 5'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '109.0'
      LayoutEngineVersionMajor                   : '109'
      LayoutEngineNameVersion                    : 'Blink 109.0'
      LayoutEngineNameVersionMajor               : 'Blink 109'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Edge'
      AgentVersion                               : '109.0.1518.52'
      AgentVersionMajor                          : '109'
      AgentNameVersion                           : 'Edge 109.0.1518.52'
      AgentNameVersionMajor                      : 'Edge 109'

      UAClientHintArchitecture                   : 'x86'
      UAClientHintBitness                        : '64'
      UAClientHintBrands_0_Brand                 : 'Microsoft Edge'
      UAClientHintBrands_0_Version               : '109'
      UAClientHintBrands_1_Brand                 : 'Chromium'
      UAClientHintBrands_1_Version               : '109'
      UAClientHintFullVersion                    : '109.0.1518.52'
      UAClientHintFullVersionList_0_Brand        : 'Microsoft Edge'
      UAClientHintFullVersionList_0_Version      : '109.0.1518.52'
      UAClientHintFullVersionList_1_Brand        : 'Chromium'
      UAClientHintFullVersionList_1_Version      : '109.0.5414.87'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Linux'
      UAClientHintPlatformVersion                : '5.15.0'
      UAClientHintWow64                          : 'false'


- test:
    input:
      User-Agent                           : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'
      Sec-Ch-Ua                            : '"Chromium";v="109", "Not_A Brand";v="99"'
      Sec-Ch-Ua-Mobile                     : '?0'
      Sec-Ch-Ua-Platform                   : '"Linux"'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Linux Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Linux'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Linux ??'
      OperatingSystemNameVersionMajor      : 'Linux ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '109'
      LayoutEngineVersionMajor             : '109'
      LayoutEngineNameVersion              : 'Blink 109'
      LayoutEngineNameVersionMajor         : 'Blink 109'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chromium'
      AgentVersion                         : '109'
      AgentVersionMajor                    : '109'
      AgentNameVersion                     : 'Chromium 109'
      AgentNameVersionMajor                : 'Chromium 109'

      UAClientHintBrands_0_Brand           : 'Chromium'
      UAClientHintBrands_0_Version         : '109'
      UAClientHintMobile                   : 'false'
      UAClientHintPlatform                 : 'Linux'


- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'
      Sec-Ch-Ua                                  : '"Chromium";v="109", "Not_A Brand";v="99"'
      Sec-Ch-Ua-Arch                             : '"x86"'
      Sec-Ch-Ua-Bitness                          : '"64"'
      Sec-Ch-Ua-Full-Version                     : '"109.0.5414.74"'
      Sec-Ch-Ua-Full-Version-List                : '"Chromium";v="109.0.5414.74", "Not_A Brand";v="99.0.0.0"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Model                            : '""'
      Sec-Ch-Ua-Platform                         : '"Linux"'
      Sec-Ch-Ua-Platform-Version                 : '"5.15.0"'
      Sec-Ch-Ua-Wow64                            : '?0'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Linux Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Linux'
      OperatingSystemVersion                     : '5.15.0'
      OperatingSystemVersionMajor                : '5'
      OperatingSystemNameVersion                 : 'Linux 5.15.0'
      OperatingSystemNameVersionMajor            : 'Linux 5'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '109.0'
      LayoutEngineVersionMajor                   : '109'
      LayoutEngineNameVersion                    : 'Blink 109.0'
      LayoutEngineNameVersionMajor               : 'Blink 109'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chromium'
      AgentVersion                               : '109.0.5414.74'
      AgentVersionMajor                          : '109'
      AgentNameVersion                           : 'Chromium 109.0.5414.74'
      AgentNameVersionMajor                      : 'Chromium 109'

      UAClientHintArchitecture                   : 'x86'
      UAClientHintBitness                        : '64'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '109'
      UAClientHintFullVersion                    : '109.0.5414.74'
      UAClientHintFullVersionList_0_Brand        : 'Chromium'
      UAClientHintFullVersionList_0_Version      : '109.0.5414.74'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Linux'
      UAClientHintPlatformVersion                : '5.15.0'
      UAClientHintWow64                          : 'false'



- test:
    input:
      User-Agent                           : 'Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
      Sec-Ch-Ua                            : '".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"'
      Sec-Ch-Ua-Mobile                     : '?0'
      Sec-Ch-Ua-Platform                   : '"Chrome OS"'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Chromebook'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Chrome OS'
      OperatingSystemVersion               : '103'
      OperatingSystemVersionMajor          : '103'
      OperatingSystemNameVersion           : 'Chrome OS 103'
      OperatingSystemNameVersionMajor      : 'Chrome OS 103'
      OperatingSystemVersionBuild          : '14816.131.0'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '103'
      LayoutEngineVersionMajor             : '103'
      LayoutEngineNameVersion              : 'Blink 103'
      LayoutEngineNameVersionMajor         : 'Blink 103'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '103'
      AgentVersionMajor                    : '103'
      AgentNameVersion                     : 'Chrome 103'
      AgentNameVersionMajor                : 'Chrome 103'
      UAClientHintBrands_0_Brand           : 'Google Chrome'
      UAClientHintBrands_0_Version         : '103'
      UAClientHintBrands_1_Brand           : 'Chromium'
      UAClientHintBrands_1_Version         : '103'
      UAClientHintMobile                   : 'false'
      UAClientHintPlatform                 : 'Chrome OS'


- test:
    input:
      User-Agent                           : 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36'
      Sec-Ch-Ua                            : '"Google Chrome";v="113", "Chromium";v="113", "Not-A.Brand";v="24"'
      Sec-Ch-Ua-Mobile                     : '?0'
      Sec-Ch-Ua-Platform                   : '"Android"'
    expected:
      DeviceClass                          : 'Tablet'
      DeviceName                           : 'Android Mobile'
      DeviceBrand                          : 'Unknown'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Android ??'
      OperatingSystemNameVersionMajor      : 'Android ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '113'
      LayoutEngineVersionMajor             : '113'
      LayoutEngineNameVersion              : 'Blink 113'
      LayoutEngineNameVersionMajor         : 'Blink 113'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '113'
      AgentVersionMajor                    : '113'
      AgentNameVersion                     : 'Chrome 113'
      AgentNameVersionMajor                : 'Chrome 113'
      UAClientHintBrands_0_Brand           : 'Google Chrome'
      UAClientHintBrands_0_Version         : '113'
      UAClientHintBrands_1_Brand           : 'Chromium'
      UAClientHintBrands_1_Version         : '113'
      UAClientHintMobile                   : 'false'
      UAClientHintPlatform                 : 'Android'


- test:
    input:
      User-Agent                           : 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36'
      Sec-Ch-Ua                            : '"Not.A/Brand";v="8", "Chromium";v="114", "Google Chrome";v="114"'
      Sec-Ch-Ua-Mobile                     : '?1'
      Sec-Ch-Ua-Platform                   : '"Android"'
    expected:
      DeviceClass                          : 'Phone'
      DeviceName                           : 'Android Mobile'
      DeviceBrand                          : 'Unknown'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Android ??'
      OperatingSystemNameVersionMajor      : 'Android ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '114'
      LayoutEngineVersionMajor             : '114'
      LayoutEngineNameVersion              : 'Blink 114'
      LayoutEngineNameVersionMajor         : 'Blink 114'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '114'
      AgentVersionMajor                    : '114'
      AgentNameVersion                     : 'Chrome 114'
      AgentNameVersionMajor                : 'Chrome 114'
      UAClientHintBrands_0_Brand           : 'Chromium'
      UAClientHintBrands_0_Version         : '114'
      UAClientHintBrands_1_Brand           : 'Google Chrome'
      UAClientHintBrands_1_Version         : '114'
      UAClientHintMobile                   : 'true'
      UAClientHintPlatform                 : 'Android'


- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Mobile Safari/537.36'
      Sec-Ch-Ua                                  : '"Google Chrome";v="113", "Chromium";v="113", "Not-A.Brand";v="24"'
      Sec-Ch-Ua-Arch                             : '""'
      Sec-Ch-Ua-Bitness                          : '""'
      Sec-Ch-Ua-Full-Version                     : '"113.0.5672.76"'
      Sec-Ch-Ua-Full-Version-List                : '"Google Chrome";v="113.0.5672.76", "Chromium";v="113.0.5672.76", "Not-A.Brand";v="24.0.0.0"'
      Sec-Ch-Ua-Mobile                           : '?1'
      Sec-Ch-Ua-Model                            : '"Pixel 3 XL"'
      Sec-Ch-Ua-Platform                         : '"Android"'
      Sec-Ch-Ua-Platform-Version                 : '"12.0.0"'
      Sec-Ch-Ua-Wow64                            : '?0'
    expected:
      DeviceClass                                : 'Phone'
      DeviceName                                 : 'Google Pixel 3 XL'
      DeviceBrand                                : 'Google'
      OperatingSystemClass                       : 'Mobile'
      OperatingSystemName                        : 'Android'
      OperatingSystemVersion                     : '12.0.0'
      OperatingSystemVersionMajor                : '12'
      OperatingSystemNameVersion                 : 'Android 12.0.0'
      OperatingSystemNameVersionMajor            : 'Android 12'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '113.0'
      LayoutEngineVersionMajor                   : '113'
      LayoutEngineNameVersion                    : 'Blink 113.0'
      LayoutEngineNameVersionMajor               : 'Blink 113'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '113.0.5672.76'
      AgentVersionMajor                          : '113'
      AgentNameVersion                           : 'Chrome 113.0.5672.76'
      AgentNameVersionMajor                      : 'Chrome 113'
      UAClientHintBrands_0_Brand                 : 'Google Chrome'
      UAClientHintBrands_0_Version               : '113'
      UAClientHintBrands_1_Brand                 : 'Chromium'
      UAClientHintBrands_1_Version               : '113'
      UAClientHintFullVersion                    : '113.0.5672.76'
      UAClientHintFullVersionList_0_Brand        : 'Google Chrome'
      UAClientHintFullVersionList_0_Version      : '113.0.5672.76'
      UAClientHintFullVersionList_1_Brand        : 'Chromium'
      UAClientHintFullVersionList_1_Version      : '113.0.5672.76'
      UAClientHintMobile                         : 'true'
      UAClientHintModel                          : 'Pixel 3 XL'
      UAClientHintPlatform                       : 'Android'
      UAClientHintPlatformVersion                : '12.0.0'
      UAClientHintWow64                          : 'false'


- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 YaBrowser/23.3.3.706 Yowser/2.5 Safari/537.36'
      Sec-Ch-Ua                                  : '"Chromium";v="110", "Not A(Brand";v="24", "YaBrowser";v="23"'
      Sec-Ch-Ua-Arch                             : '"x86"'
      Sec-Ch-Ua-Bitness                          : '"64"'
      Sec-Ch-Ua-Full-Version                     : '"23.3.3.706"'
      Sec-Ch-Ua-Full-Version-List                : '"Chromium";v="110.0.5481.208", "Not A(Brand";v="24.0.0.0", "YaBrowser";v="23.3.3.706"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Model                            : ''
      Sec-Ch-Ua-Platform                         : '"Linux"'
      Sec-Ch-Ua-Platform-Version                 : '"6.2.0"'
      Sec-Ch-Ua-Wow64                            : '?0'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Linux Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Linux'
      OperatingSystemVersion                     : '6.2.0'
      OperatingSystemVersionMajor                : '6'
      OperatingSystemNameVersion                 : 'Linux 6.2.0'
      OperatingSystemNameVersionMajor            : 'Linux 6'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '110.0'
      LayoutEngineVersionMajor                   : '110'
      LayoutEngineNameVersion                    : 'Blink 110.0'
      LayoutEngineNameVersionMajor               : 'Blink 110'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'YaBrowser'
      AgentVersion                               : '23.3.3.706'
      AgentVersionMajor                          : '23'
      AgentNameVersion                           : 'YaBrowser 23.3.3.706'
      AgentNameVersionMajor                      : 'YaBrowser 23'
      UAClientHintArchitecture                   : 'x86'
      UAClientHintBitness                        : '64'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '110'
      UAClientHintBrands_1_Brand                 : 'YaBrowser'
      UAClientHintBrands_1_Version               : '23'
      UAClientHintFullVersion                    : '23.3.3.706'
      UAClientHintFullVersionList_0_Brand        : 'Chromium'
      UAClientHintFullVersionList_0_Version      : '110.0.5481.208'
      UAClientHintFullVersionList_1_Brand        : 'YaBrowser'
      UAClientHintFullVersionList_1_Version      : '23.3.3.706'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Linux'
      UAClientHintPlatformVersion                : '6.2.0'
      UAClientHintWow64                          : 'false'


# https://whale.naver.com/en/
# Naver Whale, XWhale and Crosswalk are webframeworks to build apps.
- test:
    input:
      User-Agent                           : 'Mozilla/5.0 (Linux; Android 13; SM-G988N Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/102.0.5005.189 Whale/1.0.0.0 Crosswalk/27.102.0.17 Mobile Safari/537.36 NAVER(inapp; search; 1010; 11.22.5)'
      Sec-Ch-Ua                            : '"Whale";v="1", " Not;A Brand";v="99", "Chromium";v="102", "XWhale";v="27"'
      Sec-Ch-Ua-Mobile                     : '?1'
      Sec-Ch-Ua-Platform                   : '"Android"'
    expected:
      DeviceClass                          : 'Phone'
      DeviceName                           : 'Samsung SM-G988N'
      DeviceBrand                          : 'Samsung'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '13'
      OperatingSystemVersionMajor          : '13'
      OperatingSystemNameVersion           : 'Android 13'
      OperatingSystemNameVersionMajor      : 'Android 13'
      OperatingSystemVersionBuild          : 'TP1A.220624.014'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '102.0'
      LayoutEngineVersionMajor             : '102'
      LayoutEngineNameVersion              : 'Blink 102.0'
      LayoutEngineNameVersionMajor         : 'Blink 102'
      AgentClass                           : 'Browser Webview'
      AgentName                            : 'Whale'
      AgentVersion                         : '1'
      AgentVersionMajor                    : '1'
      AgentNameVersion                     : 'Whale 1'
      AgentNameVersionMajor                : 'Whale 1'
      WebviewAppName                       : 'Crosswalk'
      WebviewAppVersion                    : '27.102.0.17'
      WebviewAppVersionMajor               : '27'
      WebviewAppNameVersion                : 'Crosswalk 27.102.0.17'
      WebviewAppNameVersionMajor           : 'Crosswalk 27'
      UAClientHintBrands_0_Brand           : 'Whale'
      UAClientHintBrands_0_Version         : '1'
      UAClientHintBrands_1_Brand           : 'Chromium'
      UAClientHintBrands_1_Version         : '102'
      UAClientHintBrands_2_Brand           : 'XWhale'
      UAClientHintBrands_2_Version         : '27'
      UAClientHintMobile                   : 'true'
      UAClientHintPlatform                 : 'Android'

# https://whale.naver.com/en/
# Naver Whale, XWhale and Crosswalk are webframeworks to build apps.
# Unsure to use Whale or XWhale. We pick "XWhale" because it has better version information.
- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (Linux; Android 13; SM-G988N Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/102.0.5005.189 Whale/1.0.0.0 Crosswalk/27.102.0.17 Mobile Safari/537.36 NAVER(inapp; search; 1010; 11.22.5)'
      Sec-Ch-Ua                                  : '"Whale";v="1", " Not;A Brand";v="99", "Chromium";v="102", "XWhale";v="27"'
      Sec-Ch-Ua-Arch                             : ''
      Sec-Ch-Ua-Bitness                          : ''
      Sec-Ch-Ua-Full-Version                     : '"102.0.5005.189"'
      Sec-Ch-Ua-Full-Version-List                : '"Whale";v="1.0.0.0", " Not;A Brand";v="99.0.0.0", "Chromium";v="102.0.5005.189", "XWhale";v="27.102.0.17"'
      Sec-Ch-Ua-Mobile                           : '?1'
      Sec-Ch-Ua-Model                            : '"SM-G988N"'
      Sec-Ch-Ua-Platform                         : '"Android"'
      Sec-Ch-Ua-Platform-Version                 : '"13.0.0"'
      Sec-Ch-Ua-Wow64                            : '?0'
    expected:
      DeviceClass                                : 'Phone'
      DeviceName                                 : 'Samsung SM-G988N'
      DeviceBrand                                : 'Samsung'
      OperatingSystemClass                       : 'Mobile'
      OperatingSystemName                        : 'Android'
      OperatingSystemVersion                     : '13.0.0'
      OperatingSystemVersionMajor                : '13'
      OperatingSystemNameVersion                 : 'Android 13.0.0'
      OperatingSystemNameVersionMajor            : 'Android 13'
      OperatingSystemVersionBuild                : 'TP1A.220624.014'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '102.0'
      LayoutEngineVersionMajor                   : '102'
      LayoutEngineNameVersion                    : 'Blink 102.0'
      LayoutEngineNameVersionMajor               : 'Blink 102'
      AgentClass                                 : 'Browser Webview'
      AgentName                                  : 'XWhale'
      AgentVersion                               : '27.102.0.17'
      AgentVersionMajor                          : '27'
      AgentNameVersion                           : 'XWhale 27.102.0.17'
      AgentNameVersionMajor                      : 'XWhale 27'
      WebviewAppName                             : 'Crosswalk'
      WebviewAppVersion                          : '27.102.0.17'
      WebviewAppVersionMajor                     : '27'
      WebviewAppNameVersion                      : 'Crosswalk 27.102.0.17'
      WebviewAppNameVersionMajor                 : 'Crosswalk 27'
      UAClientHintBrands_0_Brand                 : 'Whale'
      UAClientHintBrands_0_Version               : '1'
      UAClientHintBrands_1_Brand                 : 'Chromium'
      UAClientHintBrands_1_Version               : '102'
      UAClientHintBrands_2_Brand                 : 'XWhale'
      UAClientHintBrands_2_Version               : '27'
      UAClientHintFullVersion                    : '102.0.5005.189'
      UAClientHintFullVersionList_0_Brand        : 'Whale'
      UAClientHintFullVersionList_0_Version      : '1.0.0.0'
      UAClientHintFullVersionList_1_Brand        : 'Chromium'
      UAClientHintFullVersionList_1_Version      : '102.0.5005.189'
      UAClientHintFullVersionList_2_Brand        : 'XWhale'
      UAClientHintFullVersionList_2_Version      : '27.102.0.17'
      UAClientHintMobile                         : 'true'
      UAClientHintModel                          : 'SM-G988N'
      UAClientHintPlatform                       : 'Android'
      UAClientHintPlatformVersion                : '13.0.0'
      UAClientHintWow64                          : 'false'



- test:
    input:
      User-Agent                           : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Whale/3.20.182.14 Safari/537.36'
      Sec-Ch-Ua                            : '"Whale";v="3", "Not-A.Brand";v="8", "Chromium";v="112"'
      Sec-Ch-Ua-Mobile                     : '?0'
      Sec-Ch-Ua-Platform                   : '"macOS"'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Apple Macintosh'
      DeviceBrand                          : 'Apple'
      DeviceCpu                            : 'Intel'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Mac OS'
      OperatingSystemVersion               : '>=10.15.7'
      OperatingSystemVersionMajor          : '>=10.15'
      OperatingSystemNameVersion           : 'Mac OS >=10.15.7'
      OperatingSystemNameVersionMajor      : 'Mac OS >=10.15'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '112'
      LayoutEngineVersionMajor             : '112'
      LayoutEngineNameVersion              : 'Blink 112'
      LayoutEngineNameVersionMajor         : 'Blink 112'
      AgentClass                           : 'Browser'
      AgentName                            : 'Whale'
      AgentVersion                         : '3.20.182.14'
      AgentVersionMajor                    : '3'
      AgentNameVersion                     : 'Whale 3.20.182.14'
      AgentNameVersionMajor                : 'Whale 3'
      UAClientHintBrands_0_Brand           : 'Whale'
      UAClientHintBrands_0_Version         : '3'
      UAClientHintBrands_1_Brand           : 'Chromium'
      UAClientHintBrands_1_Version         : '112'
      UAClientHintMobile                   : 'false'
      UAClientHintPlatform                 : 'macOS'



- test:
    input:
      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Whale/3.20.182.14 Safari/537.36'
      Sec-Ch-Ua                            : '"Whale";v="3", "Not-A.Brand";v="8", "Chromium";v="112"'
      Sec-Ch-Ua-Mobile                     : '?0'
      Sec-Ch-Ua-Platform                   : '"Windows"'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Windows NT'
      OperatingSystemVersion               : '10.0'
      OperatingSystemVersionMajor          : '10'
      OperatingSystemNameVersion           : 'Windows 10.0'
      OperatingSystemNameVersionMajor      : 'Windows 10'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '112'
      LayoutEngineVersionMajor             : '112'
      LayoutEngineNameVersion              : 'Blink 112'
      LayoutEngineNameVersionMajor         : 'Blink 112'
      AgentClass                           : 'Browser'
      AgentName                            : 'Whale'
      AgentVersion                         : '3.20.182.14'
      AgentVersionMajor                    : '3'
      AgentNameVersion                     : 'Whale 3.20.182.14'
      AgentNameVersionMajor                : 'Whale 3'
      UAClientHintBrands_0_Brand           : 'Whale'
      UAClientHintBrands_0_Version         : '3'
      UAClientHintBrands_1_Brand           : 'Chromium'
      UAClientHintBrands_1_Version         : '112'
      UAClientHintMobile                   : 'false'
      UAClientHintPlatform                 : 'Windows'



- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Whale/3.20.182.14 Safari/537.36'
      Sec-Ch-Ua                                  : '"Whale";v="3", "Not-A.Brand";v="8", "Chromium";v="112"'
      Sec-Ch-Ua-Arch                             : '"x86"'
      Sec-Ch-Ua-Bitness                          : '"64"'
      Sec-Ch-Ua-Full-Version                     : '"3.20.182.14"'
      Sec-Ch-Ua-Full-Version-List                : '"Whale";v="3.20.182.14", "Not-A.Brand";v="8.0.0.0", "Chromium";v="112.0.5615.166"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Model                            : '""'
      Sec-Ch-Ua-Platform                         : '"Windows"'
      Sec-Ch-Ua-Platform-Version                 : '"10.0.0"'
      Sec-Ch-Ua-Wow64                            : '?0'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Windows NT'
      OperatingSystemVersion                     : '10'
      OperatingSystemVersionMajor                : '10'
      OperatingSystemNameVersion                 : 'Windows 10'
      OperatingSystemNameVersionMajor            : 'Windows 10'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '112.0'
      LayoutEngineVersionMajor                   : '112'
      LayoutEngineNameVersion                    : 'Blink 112.0'
      LayoutEngineNameVersionMajor               : 'Blink 112'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Whale'
      AgentVersion                               : '3.20.182.14'
      AgentVersionMajor                          : '3'
      AgentNameVersion                           : 'Whale 3.20.182.14'
      AgentNameVersionMajor                      : 'Whale 3'
      UAClientHintArchitecture                   : 'x86'
      UAClientHintBitness                        : '64'
      UAClientHintBrands_0_Brand                 : 'Whale'
      UAClientHintBrands_0_Version               : '3'
      UAClientHintBrands_1_Brand                 : 'Chromium'
      UAClientHintBrands_1_Version               : '112'
      UAClientHintFullVersion                    : '3.20.182.14'
      UAClientHintFullVersionList_0_Brand        : 'Whale'
      UAClientHintFullVersionList_0_Version      : '3.20.182.14'
      UAClientHintFullVersionList_1_Brand        : 'Chromium'
      UAClientHintFullVersionList_1_Version      : '112.0.5615.166'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Windows'
      UAClientHintPlatformVersion                : '10.0.0'
      UAClientHintWow64                          : 'false'




# NOTE: This is a manually created testcase for Fuchsia as I do not have REAL data from this platform yet.
- test:
    input:
      User-Agent                           : 'Mozilla/5.0 (Fuchsia) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Mobile Safari/537.36'
      Sec-Ch-Ua                            : '"Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"'
      Sec-Ch-Ua-Mobile                     : '?1'
      Sec-Ch-Ua-Platform                   : '"Fuchsia"'
    expected:
      DeviceClass                          : 'Phone'
      DeviceName                           : 'Fuchsia Mobile'
      DeviceBrand                          : 'Unknown'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Fuchsia'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Fuchsia ??'
      OperatingSystemNameVersionMajor      : 'Fuchsia ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '109'
      LayoutEngineVersionMajor             : '109'
      LayoutEngineNameVersion              : 'Blink 109'
      LayoutEngineNameVersionMajor         : 'Blink 109'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '109'
      AgentVersionMajor                    : '109'
      AgentNameVersion                     : 'Chrome 109'
      AgentNameVersionMajor                : 'Chrome 109'

      UAClientHintBrands_0_Brand           : 'Google Chrome'
      UAClientHintBrands_0_Version         : '109'
      UAClientHintBrands_1_Brand           : 'Chromium'
      UAClientHintBrands_1_Version         : '109'
      UAClientHintMobile                   : 'true'
      UAClientHintPlatform                 : 'Fuchsia'


# NOTE: This is a manually created testcase for Fuchsia as I do not have REAL data from this platform.
- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (Fuchsia) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Mobile Safari/537.36'
      Sec-Ch-Ua                                  : '"Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"'
      Sec-Ch-Ua-Arch                             : '""'
      Sec-Ch-Ua-Bitness                          : '""'
      Sec-Ch-Ua-Full-Version                     : '"109.0.5414.86"'
      Sec-Ch-Ua-Full-Version-List                : '"Not_A Brand";v="99.0.0.0", "Google Chrome";v="109.0.5414.86", "Chromium";v="109.0.5414.86"'
      Sec-Ch-Ua-Mobile                           : '?1'
      Sec-Ch-Ua-Model                            : '"Google Chromecast"'  # Fake
      Sec-Ch-Ua-Platform                         : '"Fuchsia"'            # Fake
      Sec-Ch-Ua-Platform-Version                 : '"1.2.3"'              # Fake
      Sec-Ch-Ua-Wow64                            : '?0'
    expected:
      DeviceClass                                : 'Phone'
      DeviceName                                 : 'Google Chromecast'
      DeviceBrand                                : 'Google'
      OperatingSystemClass                       : 'Mobile'
      OperatingSystemName                        : 'Fuchsia'
      OperatingSystemVersion                     : '1.2.3'
      OperatingSystemVersionMajor                : '1'
      OperatingSystemNameVersion                 : 'Fuchsia 1.2.3'
      OperatingSystemNameVersionMajor            : 'Fuchsia 1'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '109.0'
      LayoutEngineVersionMajor                   : '109'
      LayoutEngineNameVersion                    : 'Blink 109.0'
      LayoutEngineNameVersionMajor               : 'Blink 109'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '109.0.5414.86'
      AgentVersionMajor                          : '109'
      AgentNameVersion                           : 'Chrome 109.0.5414.86'
      AgentNameVersionMajor                      : 'Chrome 109'

      UAClientHintBrands_0_Brand                 : 'Google Chrome'
      UAClientHintBrands_0_Version               : '109'
      UAClientHintBrands_1_Brand                 : 'Chromium'
      UAClientHintBrands_1_Version               : '109'
      UAClientHintFullVersion                    : '109.0.5414.86'
      UAClientHintFullVersionList_0_Brand        : 'Google Chrome'
      UAClientHintFullVersionList_0_Version      : '109.0.5414.86'
      UAClientHintFullVersionList_1_Brand        : 'Chromium'
      UAClientHintFullVersionList_1_Version      : '109.0.5414.86'
      UAClientHintMobile                         : 'true'
      UAClientHintModel                          : 'Google Chromecast'
      UAClientHintPlatform                       : 'Fuchsia'
      UAClientHintPlatformVersion                : '1.2.3'
      UAClientHintWow64                          : 'false'


# Lenovo Tab P11 2nd Generation
# NOTE: This is a manually created testcase for the Sec-Ch-Ua-Form-Factor as I do not have REAL data for this yet.
- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (Linux; Android 12; TB350FU) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
      Sec-Ch-Ua                                  : '".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"'
      Sec-Ch-Ua-Arch                             : '""'
      Sec-Ch-Ua-Bitness                          : '""'
      Sec-Ch-Ua-Form-Factor                      : '"Automotive", "Eink"'
      Sec-Ch-Ua-Full-Version                     : '"103.0.5060.129"'
      Sec-Ch-Ua-Full-Version-List                : '".Not/A)Brand";v="99.0.0.0", "Google Chrome";v="103.0.5060.129", "Chromium";v="103.0.5060.129"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Model                            : '"TB350FU"'
      Sec-Ch-Ua-Platform                         : '"Android"'
      Sec-Ch-Ua-Platform-Version                 : '"12.0.0"'
      Sec-Ch-Ua-Wow64                            : '?0'
    expected:
      DeviceClass                                : 'Tablet'
      DeviceName                                 : 'Lenovo TB350FU'
      DeviceBrand                                : 'Lenovo'
      OperatingSystemClass                       : 'Mobile'
      OperatingSystemName                        : 'Android'
      OperatingSystemVersion                     : '12.0.0'
      OperatingSystemVersionMajor                : '12'
      OperatingSystemNameVersion                 : 'Android 12.0.0'
      OperatingSystemNameVersionMajor            : 'Android 12'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '103.0'
      LayoutEngineVersionMajor                   : '103'
      LayoutEngineNameVersion                    : 'Blink 103.0'
      LayoutEngineNameVersionMajor               : 'Blink 103'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '103.0.5060.129'
      AgentVersionMajor                          : '103'
      AgentNameVersion                           : 'Chrome 103.0.5060.129'
      AgentNameVersionMajor                      : 'Chrome 103'
      UAClientHintBrands_0_Brand                 : 'Google Chrome'
      UAClientHintBrands_0_Version               : '103'
      UAClientHintBrands_1_Brand                 : 'Chromium'
      UAClientHintBrands_1_Version               : '103'
      UAClientHintFormFactor_0                   : 'Automotive'
      UAClientHintFormFactor_1                   : 'Eink'
      UAClientHintFullVersion                    : '103.0.5060.129'
      UAClientHintFullVersionList_0_Brand        : 'Google Chrome'
      UAClientHintFullVersionList_0_Version      : '103.0.5060.129'
      UAClientHintFullVersionList_1_Brand        : 'Chromium'
      UAClientHintFullVersionList_1_Version      : '103.0.5060.129'
      UAClientHintMobile                         : 'false'
      UAClientHintModel                          : 'TB350FU'
      UAClientHintPlatform                       : 'Android'
      UAClientHintPlatformVersion                : '12.0.0'
      UAClientHintWow64                          : 'false'


# https://github.com/nielsbasjes/yauaa/issues/1330
# https://manuals.plus/zte/t1002-blade-x10-pro-tablet-manual
# In the manuals and on the internet this is called a "Tablet" (with phone capabilities).
# Because it advertises itself in the headers as a Phone ("Mobile Safari" and "Sec-Ch-Ua-Mobile" == "?1") ==> DeviceClass: 'Phone'
- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (Linux; Android 12; ZTE T1002) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.88 Mobile Safari/537.36'
      Sec-Ch-Ua                                  : '" Not A;Brand";v="99", "Chromium";v="99", "Google Chrome";v="99"'
      Sec-Ch-Ua-Arch                             : ''
      Sec-Ch-Ua-Bitness                          : ''
      Sec-Ch-Ua-Full-Version-List                : '" Not A;Brand";v="99.0.0.0", "Chromium";v="99.0.4844.88", "Google Chrome";v="99.0.4844.88"'
      Sec-Ch-Ua-Mobile                           : '?1'
      Sec-Ch-Ua-Model                            : '"ZTE T1002"'
      Sec-Ch-Ua-Platform                         : '"Android"'
      Sec-Ch-Ua-Platform-Version                 : '"12.0.0"'
    expected:
      DeviceClass                                : 'Phone'
      DeviceName                                 : 'ZTE T1002'
      DeviceBrand                                : 'ZTE'
      OperatingSystemClass                       : 'Mobile'
      OperatingSystemName                        : 'Android'
      OperatingSystemVersion                     : '12.0.0'
      OperatingSystemVersionMajor                : '12'
      OperatingSystemNameVersion                 : 'Android 12.0.0'
      OperatingSystemNameVersionMajor            : 'Android 12'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '99.0'
      LayoutEngineVersionMajor                   : '99'
      LayoutEngineNameVersion                    : 'Blink 99.0'
      LayoutEngineNameVersionMajor               : 'Blink 99'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '99.0.4844.88'
      AgentVersionMajor                          : '99'
      AgentNameVersion                           : 'Chrome 99.0.4844.88'
      AgentNameVersionMajor                      : 'Chrome 99'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '99'
      UAClientHintBrands_1_Brand                 : 'Google Chrome'
      UAClientHintBrands_1_Version               : '99'
      UAClientHintFullVersionList_0_Brand        : 'Chromium'
      UAClientHintFullVersionList_0_Version      : '99.0.4844.88'
      UAClientHintFullVersionList_1_Brand        : 'Google Chrome'
      UAClientHintFullVersionList_1_Version      : '99.0.4844.88'
      UAClientHintMobile                         : 'true'
      UAClientHintModel                          : 'ZTE T1002'
      UAClientHintPlatform                       : 'Android'
      UAClientHintPlatformVersion                : '12.0.0'




© 2015 - 2025 Weber Informatics LLC | Privacy Policy