예제 #1
0
 /**
  * Provides test data for testPhpTransliterationWithAlter.
  *
  * @return array
  */
 public function providerTestPhpTransliterationWithAlter()
 {
     $random_generator = new Random();
     $random = $random_generator->string(10);
     // Make some strings with two, three, and four-byte characters for testing.
     // Note that the 3-byte character is overridden by the 'kg' language.
     $two_byte = 'Ä Ö Ü Å Ø äöüåøhello';
     // These are two Gothic alphabet letters. See
     // http://en.wikipedia.org/wiki/Gothic_alphabet
     // They are not in our tables, but should at least give us '?' (unknown).
     $five_byte = html_entity_decode('𐌰𐌸', ENT_NOQUOTES, 'UTF-8');
     // Five-byte characters do not work in MySQL, so make a printable version.
     $five_byte_printable = '𐌰𐌸';
     $cases = array(array('zz', $two_byte, 'Z O U A O aouaohello'), array('zz', $random, $random), array('zz', $five_byte, 'ATh', $five_byte_printable));
     return $cases;
 }
 /**
  * Provides data for self::testPhpTransliteration().
  *
  * @return array
  *   An array of arrays, each containing the parameters for
  *   self::testPhpTransliteration().
  */
 public function providerTestPhpTransliteration()
 {
     $random_generator = new Random();
     $random = $random_generator->string(10);
     // Make some strings with two, three, and four-byte characters for testing.
     // Note that the 3-byte character is overridden by the 'kg' language.
     $two_byte = 'Ä Ö Ü Å Ø äöüåøhello';
     // This is a Cyrrillic character that looks something like a u. See
     // http://www.unicode.org/charts/PDF/U0400.pdf
     $three_byte = html_entity_decode('ц', ENT_NOQUOTES, 'UTF-8');
     // This is a Canadian Aboriginal character like a triangle. See
     // http://www.unicode.org/charts/PDF/U1400.pdf
     $four_byte = html_entity_decode('ᐑ', ENT_NOQUOTES, 'UTF-8');
     // These are two Gothic alphabet letters. See
     // http://wikipedia.org/wiki/Gothic_alphabet
     // They are not in our tables, but should at least give us '?' (unknown).
     $five_byte = html_entity_decode('𐌰𐌸', ENT_NOQUOTES, 'UTF-8');
     return array(array('en', $random, $random), array('fr', $random, $random), array('fr', $three_byte, 'c'), array('fr', $four_byte, 'wii'), array('en', $five_byte, '??'), array('en', $two_byte, 'A O U A O aouaohello'), array('de', $two_byte, 'Ae Oe Ue A O aeoeueaohello'), array('de', $random, $random), array('dk', $two_byte, 'A O U Aa Oe aouaaoehello'), array('dk', $random, $random), array('kg', $three_byte, 'ts'), array('tr', 'Abayı serdiler bize. Söyleyeceğim yüzlerine. Sanırım hepimiz aynı şeyi düşünüyoruz.', 'Abayi serdiler bize. Soyleyecegim yuzlerine. Sanirim hepimiz ayni seyi dusunuyoruz.'), array('en', chr(0xf8) . chr(0x80) . chr(0x80) . chr(0x80) . chr(0x80), '?'), array('de', $two_byte, 'Ae Oe', '?', 5));
 }
예제 #3
0
 /**
  * {@inheritdoc}
  */
 public function validate($text = NULL)
 {
     $random = new Random();
     $errors = [];
     // Check if the object properties are set correctly.
     if (!$this->getEncryptionMethodId()) {
         $errors[] = $this->t('No encryption method selected.');
     }
     if (!$this->getEncryptionKeyId()) {
         $errors[] = $this->t('No encryption key selected.');
     }
     // If the properties are set, continue validation.
     if ($this->getEncryptionMethodId() && $this->getEncryptionKeyId()) {
         // Check if the linked encryption method is valid.
         $encryption_method = $this->getEncryptionMethod();
         if (!$encryption_method) {
             $errors[] = $this->t('The encryption method linked to this encryption profile does not exist.');
         }
         // Check if the linked encryption key is valid.
         $selected_key = $this->getEncryptionKey();
         if (!$selected_key) {
             $errors[] = $this->t('The key linked to this encryption profile does not exist.');
         }
         // If the encryption method and key are valid, continue validation.
         if (empty($errors)) {
             // Check if the selected key type matches encryption method settings.
             $allowed_key_types = $encryption_method->getPluginDefinition()['key_type'];
             if (!empty($allowed_key_types)) {
                 $selected_key_type = $selected_key->getKeyType();
                 if (!in_array($selected_key_type->getPluginId(), $allowed_key_types)) {
                     $errors[] = $this->t('The selected key cannot be used with the selected encryption method.');
                 }
             }
             // Check if encryption method dependencies are met.
             $encryption_method = $this->getEncryptionMethod();
             if (!$text) {
                 $text = $random->string();
             }
             $dependency_errors = $encryption_method->checkDependencies($text, $selected_key->getKeyValue());
             $errors = array_merge($errors, $dependency_errors);
         }
     }
     return $errors;
 }
예제 #4
0
 /**
  * Tests random string validation callbacks.
  *
  * @covers ::string
  */
 public function testRandomStringValidator()
 {
     $random = new Random();
     $this->firstStringGenerated = '';
     $str = $random->string(1, TRUE, array($this, '_RandomStringValidate'));
     $this->assertNotEquals($this->firstStringGenerated, $str);
 }
 /**
  * Tries to claim a payment once.
  *
  * @param integer $payment_id
  *
  * @return string|false
  *   An acquisition code to acquire the payment with on success, or FALSE if
  *   the payment could not be claimed.
  */
 protected function tryClaimPaymentOnce($payment_id)
 {
     $acquisition_code = $this->randomGenerator->string(255);
     $count = $this->database->update('payment_queue', array('return' => Database::RETURN_AFFECTED))->condition('claimed', time() - $this->getClaimExpirationPeriod(), '<')->condition('payment_id', $payment_id)->condition('queue_id', $this->queueId)->fields(array('acquisition_code' => $acquisition_code, 'claimed' => time()))->execute();
     return $count ? $acquisition_code : FALSE;
 }
예제 #6
0
 /**
  * @Given /^I am viewing (?:a|an) "([^"]*)" node$/
  * @Given /^I create (?:a|an) "([^"]*)" node$/
  *
  * This overrides the parent createNode() method, allowing node properties
  * to be passes via $properties argument.
  *
  * @override
  */
 public function createNode($type, $properties = array())
 {
     $node = (object) array('title' => Random::string(25), 'type' => $type, 'uid' => 1);
     if ($properties) {
         foreach ($properties as $key => $value) {
             $node->{$key} = $value;
         }
     }
     $this->dispatcher->dispatch('beforeNodeCreate', new EntityEvent($this, $node));
     $saved = $this->getDriver()->createNode($node);
     $this->dispatcher->dispatch('afterNodeCreate', new EntityEvent($this, $saved));
     $this->nodes[] = $saved;
     // Set internal page on the new node.
     $this->getSession()->visit($this->locatePath('/node/' . $saved->nid));
     return $saved;
 }