feat: 后端全量更新 - 含所有本次需求
- Contract.php: 返回合约账户余额(balance_contract) - My.php: 地址管理增加BTC/ETH - AppContract.php: 一键平仓(closeall) - AppProxy.php: 代理专属注册链接 + 分级权限(L1/L2) - site.php: 手续费减半(0.018→0.009) - agent_permission_setup.sql: 代理权限SQL - crypto_news_crawler.py: 新闻自动采集脚本
This commit is contained in:
+43
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace Stichoza\GoogleTranslate\Tests;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Stichoza\GoogleTranslate\GoogleTranslate;
|
||||
|
||||
class LanguageDetectionTest extends TestCase
|
||||
{
|
||||
public $tr;
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
$this->tr = new GoogleTranslate();
|
||||
}
|
||||
|
||||
public function testSingleWord()
|
||||
{
|
||||
$this->tr->translate('გამარჯობა');
|
||||
$this->assertEquals($this->tr->getLastDetectedSource(), 'ka');
|
||||
|
||||
$this->tr->translate('Cześć');
|
||||
$this->assertEquals($this->tr->getLastDetectedSource(), 'pl');
|
||||
}
|
||||
|
||||
public function testSingleSentence()
|
||||
{
|
||||
$this->tr->translate('იყო არაბეთს როსტევან');
|
||||
$this->assertEquals($this->tr->getLastDetectedSource(), 'ka');
|
||||
|
||||
$this->tr->translate('Путин хуйло');
|
||||
$this->assertEquals($this->tr->getLastDetectedSource(), 'ru');
|
||||
}
|
||||
|
||||
public function testMultipleSentence()
|
||||
{
|
||||
$this->tr->translate('ჩემი ხატია სამშობლო. სახატე - მთელი ქვეყანა. განათებული მთა-ბარი.');
|
||||
$this->assertEquals($this->tr->getLastDetectedSource(), 'ka');
|
||||
|
||||
$this->tr->translate('Ще не вмерла Україна, И слава, и воля! Ще намъ, браття-молодці, Усміхнеться доля!');
|
||||
$this->assertEquals($this->tr->getLastDetectedSource(), 'uk');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace Stichoza\GoogleTranslate\Tests;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Stichoza\GoogleTranslate\GoogleTranslate;
|
||||
|
||||
class TranslationTest extends TestCase
|
||||
{
|
||||
public $tr;
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
$this->tr = new GoogleTranslate();
|
||||
}
|
||||
|
||||
public function testTranslationEquality()
|
||||
{
|
||||
try {
|
||||
$resultOne = GoogleTranslate::trans('Hello', 'ka', 'en');
|
||||
} catch (\ErrorException $e) {
|
||||
$resultOne = null;
|
||||
}
|
||||
$resultTwo = $this->tr->setSource('en')->setTarget('ka')->translate('Hello');
|
||||
|
||||
$this->assertEquals($resultOne, $resultTwo, 'გამარჯობა');
|
||||
}
|
||||
|
||||
public function testUTF16Translation()
|
||||
{
|
||||
try {
|
||||
$resultOne = GoogleTranslate::trans('yes 👍🏽', 'de', 'en');
|
||||
} catch (\ErrorException $e) {
|
||||
$resultOne = null;
|
||||
}
|
||||
$resultTwo = $this->tr->setSource('en')->setTarget('de')->translate('yes 👍🏽');
|
||||
|
||||
$this->assertEquals($resultOne, $resultTwo, 'ja 👍🏽');
|
||||
}
|
||||
|
||||
public function testRawResponse()
|
||||
{
|
||||
$rawResult = $this->tr->getResponse('cat');
|
||||
|
||||
$this->assertTrue(is_array($rawResult), 'Method getResponse() should return an array.');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
namespace Stichoza\GoogleTranslate\Tests;
|
||||
|
||||
use ReflectionClass;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Stichoza\GoogleTranslate\GoogleTranslate;
|
||||
|
||||
class UtilityTest extends TestCase
|
||||
{
|
||||
public $tr;
|
||||
|
||||
public $method;
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
$this->tr = new GoogleTranslate();
|
||||
$reflection = new ReflectionClass(get_class($this->tr));
|
||||
$this->method = $reflection->getMethod('isValidLocale');
|
||||
$this->method->setAccessible(true);
|
||||
}
|
||||
|
||||
public function testIsValidLocale()
|
||||
{
|
||||
$m = $this->method;
|
||||
$t = $this->tr;
|
||||
|
||||
$booleanAssertions = [
|
||||
'ab' => true,
|
||||
'ab-CD' => true,
|
||||
'ab-CDE' => false,
|
||||
'abc-DE' => false,
|
||||
'abc-DEF' => false,
|
||||
'abc' => false,
|
||||
'ab-' => false,
|
||||
'a' => false,
|
||||
];
|
||||
|
||||
foreach ($booleanAssertions as $key => $value) {
|
||||
$this->assertEquals($m->invokeArgs($t, [$key]), $value);
|
||||
}
|
||||
}
|
||||
|
||||
public function testSetOptions()
|
||||
{
|
||||
$res = fopen('php://memory', 'r+');
|
||||
|
||||
$this->tr->setOptions([
|
||||
'debug' => $res,
|
||||
'headers' => [
|
||||
'User-Agent' => 'Foo',
|
||||
],
|
||||
])->translate('hello');
|
||||
rewind($res);
|
||||
$output = str_replace("\r", '', stream_get_contents($res));
|
||||
$this->assertContains('User-Agent: Foo', $output);
|
||||
|
||||
GoogleTranslate::trans('world', 'en', null, [
|
||||
'debug' => $res,
|
||||
'headers' => [
|
||||
'User-Agent' => 'Bar',
|
||||
],
|
||||
]);
|
||||
rewind($res);
|
||||
$output = str_replace("\r", '', stream_get_contents($res));
|
||||
$this->assertContains('User-Agent: Bar', $output);
|
||||
fclose($res);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user