Skip to content
Snippets Groups Projects
g1_test.dart 30.38 KiB
import 'dart:convert';
import 'dart:math';

import 'package:durt/durt.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:ginkgo/data/models/contact.dart';
import 'package:ginkgo/data/models/node.dart';
import 'package:ginkgo/data/models/node_lists_default.dart';
import 'package:ginkgo/data/models/payment_state.dart';
import 'package:ginkgo/data/models/transaction.dart';
import 'package:ginkgo/data/models/transaction_type.dart';
import 'package:ginkgo/g1/g1_export_utils.dart';
import 'package:ginkgo/g1/g1_helper.dart';
import 'package:ginkgo/g1/g1_v2_helper.dart';
import 'package:ginkgo/ui/logger.dart';

String _generateRandomPatternPassword(Random random) {
  final int length = random.nextInt(8) + 2; // Password length between 2 and 9.
  final Set<int> digits = <int>{1, 2, 3, 4, 5, 6, 7, 8, 9};
  final List<int> passwordDigits = <int>[];
  for (int i = 0; i < length; i++) {
    final int selectedDigit = digits.elementAt(random.nextInt(digits.length));
    passwordDigits.add(selectedDigit);
    digits.remove(selectedDigit);
  }
  return passwordDigits.join();
}

void main() {
  const String testPubKey = '7wnDh2FPdwNW8Dd5JyoJTbspuu8b9QJKps2xAYenefsu';
  const String testPubKey1 = '7XtCpQSj8HRQxAD7rjZrMJ1knxBm6yx317R7sYzu3Hy6';
  const String testPubKey2 = '2AD8Eg55RKidFLcFBVy8NuSrNsPvwrDjPe2SLq8seMjf';
  const String testPubKey3 = 'A23W3Z4NNxShFThCwHsru1pgzMJDMSf5GaJxb3A5ipih';
  const String testPubKey4 = '39a4E4555VNVyZKQgFC88h9eykEaSCFzyr22PncpGvA9:au1';

  test('Test serialization and deserialization of UInt8List seeds', () {
    final Uint8List seed = generateUintSeed();
    final String sSeed = seedToString(seed);

    final Uint8List seedRestored = seedFromString(sSeed);
    expect(seed, equals(seedRestored));
    final CesiumWallet wallet = generateCesiumWallet(seed);
    final CesiumWallet walletRestored = generateCesiumWallet(seedRestored);
    expect(wallet.pubkey, equals(walletRestored.pubkey));
    expect(wallet.seed, equals(walletRestored.seed));
    expect(wallet.rootKey, equals(walletRestored.rootKey));
  });

  test('parse different networks/peers BMAS', () {
    expect(
        parseHost('BMAS g1.texu.es 7443'), equals('https://g1.texu.es:7443'));
    expect(
        parseHost('BMAS g1.duniter.org 443'), equals('https://g1.duniter.org'));
    expect(parseHost('BMAS g1.leprette.fr 443 /bma'),
        equals('https://g1.leprette.fr/bma'));
    expect(parseHost('BMAS g1-vijitatman.es 212.227.41.252 443'),
        equals('https://g1-vijitatman.es'));
    expect(
        parseHost(
            'BMAS monnaie-libre.ortie.org/bma/ 192.168.1.35 2a01:cb0d:5c2:fa00:21e:68ff:feab:389a 443'),
        equals('https://monnaie-libre.ortie.org/bma'));
  });

  test('parse different networks/peers GVA S', () {
    expect(parseHost('GVA S duniter.master.aya.autissier.net 443 gva'),
        equals('https://duniter.master.aya.autissier.net/gva'));
    expect(parseHost('GVA S g1-test-dev.pini.fr 443 gva'),
        equals('https://g1-test-dev.pini.fr/gva'));
  });