KUJUNTI.ID MINISH3LL
Path : /var/www/html/jewelry-pos/vendor/stevebauman/location/tests/
(S)h3ll Cr3at0r :
F!le Upl0ad :

B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H

Current File : /var/www/html/jewelry-pos/vendor/stevebauman/location/tests/CloudflareTest.php


<?php

namespace Stevebauman\Location\Tests;

use Illuminate\Support\Facades\Request;
use Stevebauman\Location\Drivers\Cloudflare;
use Stevebauman\Location\Drivers\Driver;
use Stevebauman\Location\Facades\Location;
use Stevebauman\Location\Position;

it('can use CF-injected full headers', function () {
    config(['location.testing.enabled' => false]);
    config(['location.driver' => Cloudflare::class]);
    config(['location.fallbacks' => []]);

    Request::instance()->headers->replace([
        'CF-IPCountry' => 'GB',
        'CF-IPCity' => 'Boxford',
        'CF-IPLatitude' => '51.75',
        'CF-IPLongitude' => '-1.25',
        'CF-Region' => 'Plymouth',
        'CF-Region-Code' => 'PLY',
        'CF-Postal-Code' => 'PL5',
        'CF-Timezone' => 'Europe/London',
    ]);

    $position = Location::get('2.125.160.216');

    expect($position)->toBeInstanceOf(Position::class);

    expect($position->toArray())->toEqual([
        'ip' => '2.125.160.216',
        'countryName' => null,
        'countryCode' => 'GB',
        'regionCode' => 'PLY',
        'regionName' => 'Plymouth',
        'cityName' => 'Boxford',
        'zipCode' => null,
        'isoCode' => 'GB',
        'postalCode' => 'PL5',
        'latitude' => '51.75',
        'longitude' => '-1.25',
        'metroCode' => null,
        'areaCode' => null,
        'timezone' => 'Europe/London',
        'driver' => Cloudflare::class,
    ]);
});

it('can use CF-injected simple header', function () {
    config(['location.testing.enabled' => false]);
    config(['location.driver' => Cloudflare::class]);

    Request::instance()->headers->replace([
        'CF-IPCountry' => 'GB',
    ]);

    $position = Location::get('2.125.160.216');

    expect($position)->toBeInstanceOf(Position::class);

    expect($position->toArray())->toEqual([
        'ip' => '2.125.160.216',
        'countryName' => null,
        'countryCode' => 'GB',
        'regionCode' => null,
        'regionName' => null,
        'cityName' => null,
        'zipCode' => null,
        'isoCode' => 'GB',
        'postalCode' => null,
        'latitude' => null,
        'longitude' => null,
        'metroCode' => null,
        'areaCode' => null,
        'timezone' => null,
        'driver' => Cloudflare::class,
    ]);
});

it('will gracefully fall back if CF header returns falsey value', function () {
    config(['location.testing.enabled' => false]);
    config(['location.driver' => Cloudflare::class]);
    config(['location.fallbacks' => [Driver::class]]);

    Request::instance()->headers->replace([
        'CF-IPCountry' => 'XX',
    ]);

    $position = new Position();
    $position->driver = Driver::class;

    $fallback = $this->mock(Driver::class);
    $fallback->shouldReceive('get')->andReturn($position);

    $position = Location::get('2.125.160.216');

    expect($position)->toBeInstanceOf(Position::class);
    expect($position->driver)->toEqual(Driver::class);

    Request::instance()->headers->replace([
        'CF-IPCountry' => 'T1',
    ]);

    $position = Location::get('2.125.160.216');

    expect($position)->toBeInstanceOf(Position::class);
    expect($position->driver)->toEqual(Driver::class);
});

it('will gracefully fall back if CF headers are not present', function () {
    config(['location.testing.enabled' => false]);
    config(['location.driver' => Cloudflare::class]);
    config(['location.fallbacks' => [Driver::class]]);

    $position = new Position();
    $position->driver = Driver::class;

    $fallback = $this->mock(Driver::class);
    $fallback->shouldReceive('get')->andReturn($position);

    $position = Location::get('2.125.160.216');

    expect($position)->toBeInstanceOf(Position::class);
    expect($position->driver)->toEqual(Driver::class);
});

© KUJUNTI.ID