123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586 |
- <?php
- /**
- * User Import module base test class.
- */
- class UserImportWebTestCase extends DrupalWebTestCase {
- protected $admin_user;
- protected $user_importer;
- /**
- * Select CSV file (the included example file)
- */
- function settingsFileSelect() {
- $edit = array('file_ftp' => 1);
- $this->drupalPost('admin/people/user_import/add', $edit, t('Next'));
- /* Check file was selected */
- $this->assertText(t('Use Different CSV File'), '[assert] File was selected');
- }
- function settingsEmailMatch(&$edit) {
- $edit['field_match[5][field_match]'] = 'user-email';
- }
- function settingsIgnoreFirstLine(&$edit) {
- $edit['first_line_skip'] = 1;
- }
- function checkAccountsExist($list_failures = FALSE) {
- $failures_list = '';
- $users_email = $this->usersList();
- $failed = array();
- foreach ($users_email as $mail) {
- $user = user_load_by_mail($mail);
- if (empty($user)) $failed[] = $mail;
- }
- if (!empty($failed) && $list_failures) {
- $failures_list = t('. Failed accounts: %failures', array('%failures' => implode(', ', $failed)));
- }
- $this->assertTrue(empty($failed), t('Accounts created for users imported') . $failures_list);
- }
- /**
- * List of users (email addresses) being imported
- * To Do - Generate this dynamically, bearing in mind it could be used for stress testing
- */
- function usersList() {
- return array(
- 'john@example.com',
- 'mandy@example.com',
- 'charles@example.com',
- 'sarah@example.com',
- 'sarah_smith@example.com',
- 'helen@example.com',
- 'claire@example.com',
- 'victoria@example.com',
- 'james@example.com',
- 'anna@example.com',
- 'tino@example.com',
- 'sofia@example.com',
- 'steve@example.com',
- 'lucy@example.com',
- 'angie@example.com',
- 'carmen@example.com',
- 'paul@example.com',
- 'jason@example.com',
- 'mike@example.com',
- 'mary@example.com',
- 'simon@example.com',
- 'kieran@example.com',
- 'arthur@example.com',
- 'gwen@example.com',
- 'chester@example.com',
- 'dorothy@example.com',
- 'cameron@example.com',
- 'trisha@example.com',
- 'david@example.com',
- 'peter@example.com',
- 'saul@example.com',
- 'noel@example.com',
- 'matt@example.com',
- 'aston@example.com',
- 'mille@example.com',
- 'ernest@example.com',
- );
- }
- /**
- * Store import ID
- * - set on import settings page, retrieve on later tasks
- */
- function importID($url = NULL) {
- static $import_id = 0;
- if (empty($import_id) && !empty($url)) {
- $args = explode('/', $url);
- $import_id = $args[7];
- }
- return $import_id;
- }
- /**
- * SimpleTest core method: code run after each and every test method.
- */
- function tearDown() {
- // delete accounts of users imported
- $users_email = $this->usersList();
- foreach ($users_email as $mail) {
- $account = user_load_by_mail($mail);
- if (!empty($account)) user_delete($account->uid);
- }
- // delete the import
- $import_id = $this->importID();
- $this->assertTrue(!empty($import_id), t('Import ID: !id', array('!id' => $import_id)));
- _user_import_settings_deletion($import_id);
- // Always call the tearDown() function from the parent class.
- parent::tearDown();
- }
- }
- /**
- * User Import module base test class.
- */
- class UserImportBasicsTestCase extends UserImportWebTestCase {
- public static function getInfo() {
- return array(
- 'name' => 'Import Users (Basics)',
- 'description' => 'Import users from a CSV file, test basic functions.',
- 'group' => 'User Import',
- );
- }
- function setUp() {
- parent::setUp(array('user_import'));
- $this->admin_user = $this->drupalCreateUser(array('administer users', 'access administration pages', 'access overlay'));
- $this->user_importer = $this->drupalCreateUser(array('import users'));
- }
- /**
- * User with right permissions creates import (with new settings)
- * - test core functions
- */
- function testCreateImport() {
- // Prepare a user to do testing
- $this->drupalLogin($this->user_importer);
- // Select CSV file (the included example file)
- $this->settingsFileSelect();
- // import settings
- $this->importID($this->getUrl()); // store import ID for later
- $setting_edit = array();
- $this->settingsEmailMatch($settings);
- $this->settingsIgnoreFirstLine($settings);
- $this->drupalPost($this->getUrl(), $settings, 'Import');
- // check if users have been imported
- $this->checkAccountsExist(TRUE);
- }
- }
- /**
- * Test import of user data into Profile module
- */
- //class UserImportNodeprofileTestCase extends UserImportWebTestCase {
- //
- // public static function getInfo() {
- // return array(
- // 'name' => 'Import Users (Nodeprofile)',
- // 'description' => 'Test import of user data into Nodeprofile module.',
- // 'group' => 'User Import',
- // );
- // }
- //
- // function setUp() {
- // parent::setUp('content', 'number', 'optionwidgets', 'text', 'link', 'date_api', 'date', 'node_import', 'content_profile', 'user_import');
- // $this->admin_user = $this->drupalCreateUser(array('administer users', 'administer permissions', 'access administration pages', 'administer site configuration', 'administer content types', 'administer taxonomy'));
- // $this->user_importer = $this->drupalCreateUser(array('import users'));
- // }
- //
- // /**
- // * User with right permissions creates import (with new settings)
- // * - test import of user data into Nodeprofile module
- // */
- // function testCreateImport() {
- // $this->drupalLogin($this->admin_user);
- // // $this->drupalGet('admin/build/modules');
- // // file_put_contents('output.html', $this->drupalGetContent());
- //
- // $this->nodeprofileConfiguration();
- //
- // // Prepare a user to do testing
- // $this->drupalGet('logout'); // log out first
- // $this->drupalLogin($this->user_importer);
- //
- // // Select CSV file (the included example file)
- // $this->settingsFileSelect();
- //
- // // import settings
- // $this->importID($this->getUrl()); // store import ID for later
- // $settings = array();
- // $this->settingsEmailMatch($settings);
- // $this->settingsNodeprofileMatch($settings);
- // $this->settingsIgnoreFirstLine($settings);
- // $this->drupalPost($this->getUrl(), $settings, 'Import');
- //
- // // check if users have been imported
- // $this->checkNodeprofileExist();
- //
- // }
- //
- // /**
- // * Configure modules
- // */
- // function nodeprofileConfiguration() {
- //
- // // create Identity content type
- // $edit = array('name' => 'Identity', 'type' => 'identity', 'title_label' => 'Title', 'body_label' => '', 'node_options[promote]' => 0, 'content_profile_use' => 1);
- // $this->drupalPost('admin/content/types/add', $edit, t('Save content type'));
- //
- // // create First Name field
- // $edit = array('_add_new_field[label]' => 'First Name', '_add_new_field[field_name]' => 'first_name', '_add_new_field[type]' => 'text', '_add_new_field[widget_type]' => 'text_textfield');
- // $this->drupalPost('admin/content/node-type/identity/fields', $edit, t('Save'));
- //
- // $edit = array('required' => 1);
- // $this->drupalPost('admin/content/node-type/identity/fields/field_first_name', $edit, t('Save field settings'));
- //
- // // create Last Name field
- // $edit = array('_add_new_field[label]' => 'Last Name', '_add_new_field[field_name]' => 'last_name', '_add_new_field[type]' => 'text', '_add_new_field[widget_type]' => 'text_textfield');
- // $this->drupalPost('admin/content/node-type/identity/fields', $edit, t('Save'));
- //
- // $edit = array('required' => 1);
- // $this->drupalPost('admin/content/node-type/identity/fields/field_last_name', $edit, t('Save field settings'));
- //
- // // create Biography content type
- // $edit = array('name' => 'Biography', 'type' => 'biography', 'title_label' => 'Title', 'body_label' => '', 'node_options[promote]' => 0, 'content_profile_use' => 1);
- // $this->drupalPost('admin/content/types/add', $edit, t('Save content type'));
- //
- // // create CV field
- // $edit = array('_add_new_field[label]' => 'CV', '_add_new_field[field_name]' => 'cv', '_add_new_field[type]' => 'text', '_add_new_field[widget_type]' => 'text_textarea');
- // $this->drupalPost('admin/content/node-type/biography/fields', $edit, t('Save'));
- //
- // $edit = array('required' => 1, 'rows' => 5);
- // $this->drupalPost('admin/content/node-type/biography/fields/field_cv', $edit, t('Save field settings'));
- //
- // // create Blog field (URL)
- // $edit = array('_add_new_field[label]' => 'Blog', '_add_new_field[field_name]' => 'blog', '_add_new_field[type]' => 'link', '_add_new_field[widget_type]' => 'link');
- // $this->drupalPost('admin/content/node-type/biography/fields', $edit, t('Save'));
- //
- // // create Birthday field (date)
- // $edit = array('_add_new_field[label]' => 'Birthday', '_add_new_field[field_name]' => 'birthday', '_add_new_field[type]' => 'datestamp', '_add_new_field[widget_type]' => 'date_text');
- // $this->drupalPost('admin/content/node-type/biography/fields', $edit, t('Save'));
- //
- // // create Interests Vocabulary
- // $edit = array('name' => 'Interests', 'nodes[biography]' => 'biography', 'tags' => 1);
- // $this->drupalPost('admin/content/taxonomy/add/vocabulary', $edit, t('Save'));
- //
- // $vocabularies = taxonomy_get_vocabularies('biography');
- //
- // foreach ($vocabularies as $vocabulary) {
- // $this->vocabulary_id = $vocabulary->vid;
- // }
- //
- // // create Contact Details contact type
- // $edit = array('name' => 'Contact Details', 'type' => 'contact_details', 'title_label' => 'Title', 'body_label' => '', 'node_options[promote]' => 0, 'content_profile_use' => 1);
- // $this->drupalPost('admin/content/types/add', $edit, t('Save content type'));
- //
- // // create Can Be Contacted field
- // $edit = array('_add_new_field[label]' => 'Contact', '_add_new_field[field_name]' => 'can_be_contacted', '_add_new_field[type]' => 'number_integer', '_add_new_field[widget_type]' => 'optionwidgets_onoff');
- // $this->drupalPost('admin/content/node-type/contact-details/fields', $edit, t('Save'));
- //
- // $edit = array('allowed_values' => "0
- // 1|Can be contacted");
- // $this->drupalPost('admin/content/node-type/contact-details/fields/field_can_be_contacted', $edit, t('Save field settings'));
- //
- // // create Contact Preference field
- // $edit = array('_add_new_field[label]' => 'Contact Preference', '_add_new_field[field_name]' => 'contact_preference', '_add_new_field[type]' => 'text', '_add_new_field[widget_type]' => 'optionwidgets_select');
- // $this->drupalPost('admin/content/node-type/contact-details/fields', $edit, t('Save'));
- //
- // $edit = array('allowed_values' => 'email|email
- // telephone|telephone
- // post|post');
- // $this->drupalPost('admin/content/node-type/contact-details/fields/field_contact_preference', $edit, t('Save field settings'));
- //
- // // set access perm for authenticated users to creade profile nodes
- // $edit = array('2[create identity content]' => 'create identity content', '2[create biography content]' => 'create biography content', '2[create contact_details content]' => 'create contact_details content');
- // $this->drupalPost('admin/people/permissions', $edit, t('Save permissions'));
- // }
- //
- //
- // /**
- // * Match CSV columns to Profile fields
- // */
- // function settingsNodeprofileMatch(&$edit) {
- // $edit['field_match[0][field_match]'] = 'content_profile-identity cck:field_first_name:value'; // First Name
- // $edit['field_match[1][field_match]'] = 'content_profile-identity cck:field_last_name:value'; // Last Name
- // $edit['field_match[10][field_match]'] = 'content_profile-biography cck:field_cv:value'; // CV
- // $edit['field_match[7][field_match]'] = 'content_profile-contact_details cck:field_can_be_contacted:value'; // Contact Permision
- // $edit['field_match[8][field_match]'] = 'content_profile-contact_details cck:field_contact_preference:value'; // Contact Preference
- //// $edit['field_match[9][field_match]'] = 'taxonomy-' . $this->vocabulary_id; // Interests
- // $edit['field_match[6][field_match]'] = 'content_profile-biography cck:field_blog:url'; // Blog
- // $edit['field_match[11][field_match]'] = 'content_profile-biography cck:field_birthday:value'; // Birthday
- // }
- //
- // /**
- // * Check data in CSV file matches data in profiles
- // */
- // function checkNodeprofileExist() {
- // $file_path = drupal_get_path('module', 'user_import') . '/sample.txt';
- // $handle = @fopen($file_path, "r");
- // $row = 0;
- //
- // while ($csv = fgetcsv($handle, 1000, ',')) {
- //
- // if ($row > 0) {
- //
- // $user = user_load_by_mail($csv[5]);
- // // test each data cell against nodeprofile field content
- // $identity = node_load(array('type' => 'identity', 'uid' => $user->uid), NULL, TRUE);
- // $this->drupalGet("node/$identity->nid");
- // $this->assertText(check_plain($csv[0]), "[Compare CSV and Profile data] Row: $row Field: First Name");
- // $this->assertText(check_plain($csv[1]), "[Compare CSV and Profile data] Row: $row Field: Last Name " . $csv[1]);
- //
- // $biography = node_load(array('type' => 'biography', 'uid' => $user->uid), NULL, TRUE);
- // $this->drupalGet("node/$biography->nid");
- // $this->assertText($csv[6], "[Compare CSV and Profile data] Row: $row Field: Blog");
- // $this->assertText($csv[10], "[Compare CSV and Profile data] Row: $row Field: CV");
- // $birthday = format_date(strtotime($csv[11]), 'custom', 'D, j/m/Y');
- // $this->assertText($birthday, "[Compare CSV and Profile data] Row: $row Field: Birthday " . $birthday);
- //
- //
- // $contact_details = node_load(array('type' => 'contact_details', 'uid' => $user->uid), NULL, TRUE);
- // $this->drupalGet("node/$contact_details->nid");
- //
- // if (isset($csv[7]) && !empty($csv[7])) {
- // $this->assertText('Can be contacted', "[Compare CSV and Profile data] Row: $row Field: Contact Permission set");
- // }
- // else {
- // $this->assertNoText('Can be contacted', "[Compare CSV and Profile data] Row: $row Field: Contact Permission not set");
- // }
- //
- // $this->assertText($csv[8], "[Compare CSV and Profile data] Row: $row Field: Contact Preference");
- //
- // //test interests link on profile page
- // if (!empty($user->profile_interests)) {
- // $interests = explode(',', $user->profile_interests);
- // $this->drupalGet('profile/profile_interests/' . $interests[0]);
- // $this->assertWantedRaw('<a title="View user profile." href="/' . url('user/' . $user->uid) . '">' . $user->name . '</a>' , '[Freeform List] User is listed on page about item in list');
- // }
- //
- // }
- //
- // $row++;
- // }
- //
- // }
- //
- // /**
- // * SimpleTest core method: code run after each and every test method.
- // */
- // function tearDown() {
- //
- // // delete accounts of users imported
- // $users_email = $this->usersList();
- //
- // foreach ($users_email as $mail) {
- // $account = user_load_by_mail($mail);
- // // delete node profile nodes
- // if (!empty($account)) {
- // $identity = node_load(array('type' => 'identity', 'uid' => $account->uid));
- // $biography = node_load(array('type' => 'biography', 'uid' => $account->uid));
- // $contact_details = node_load(array('type' => 'contact_details', 'uid' => $account->uid));
- // node_delete($identity->nid);
- // node_delete($biography->nid);
- // node_delete($contact_details->nid);
- // user_delete(array(), $account->uid);
- // }
- // }
- //
- // // delete the import
- // $import_id = $this->importID();
- // $this->assertTrue(!empty($import_id), t('Import ID: !id', array('!id' => $import_id)));
- // _user_import_settings_deletion($import_id);
- //
- // // delete vocabulary
- // taxonomy_del_vocabulary($this->vocabulary_id);
- //
- // // uninstall modules
- // // - tear down disable doesn't seem to do this
- // // foreach($this->modules as $module) {
- // // if (function_exists($module . '_uninstall')) {
- // // $result = call_user_func_array($module . '_uninstall', array());
- // // }
- // // }
- //
- // // delete nodeprofile content types
- // node_type_delete('dummy'); // (for some reason) the first node_type_delete is completely ignored
- // node_type_delete('identity');
- // node_type_delete('biography');
- // node_type_delete('contact_details');
- //
- // // Always call the tearDown() function from the parent class.
- // parent::tearDown();
- // }
- //}
- /**
- * Test import of user data into Profile module
- */
- //class UserImportProfileTestCase extends UserImportWebTestCase {
- //
- //
- // public static function getInfo() {
- // return array(
- // 'name' => 'Import Users (Profile)',
- // 'description' => 'Test import of user data into Profile module.',
- // 'group' => 'User Import',
- // );
- // }
- //
- // function setUp() {
- // parent::setUp('user_import', 'profile');
- // $this->admin_user = $this->drupalCreateUser(array('administer users', 'access administration pages', 'administer site configuration'));
- // $this->user_importer = $this->drupalCreateUser(array('import users'));
- // }
- //
- // /**
- // * User with right permissions creates import (with new settings)
- // * - test import of user data into Profile module
- // */
- // function testCreateImport() {
- // $this->drupalLogin($this->admin_user);
- // $this->profileFieldsCreate();
- //
- // // Prepare a user to do testing
- // $this->drupalGet('logout'); // log out first
- // $this->drupalLogin($this->user_importer);
- //
- // // Select CSV file (the included example file)
- // $this->settingsFileSelect();
- //
- // // import settings
- // $this->importID($this->getUrl()); // store import ID for later
- //
- // $settings = array();
- // $this->settingsEmailMatch($settings);
- // $this->settingsProfileMatch($settings);
- // $this->settingsIgnoreFirstLine($settings);
- // $this->drupalPost($this->getUrl(), $settings, 'Import');
- //
- // // check if users have been imported
- // $this->checkProfileExist();
- // }
- //
- // /**
- // * create profile fields
- // */
- // function profileFieldsCreate() {
- //
- // // Textfield
- // $edit = array('category' => 'Name', 'title' => 'First Name', 'name' => 'profile_first_name');
- // $this->drupalPost('admin/people/profile/add/textfield', $edit, t('Save field'));
- //
- // // Textfield
- // $edit = array('category' => 'Name', 'title' => 'Last Name', 'name' => 'profile_last_name');
- // $this->drupalPost('admin/people/profile/add/textfield', $edit, t('Save field'));
- //
- // // Textarea
- // $edit = array('category' => 'Biography', 'title' => 'CV', 'name' => 'profile_cv');
- // $this->drupalPost('admin/people/profile/add/textarea', $edit, t('Save field'));
- //
- // // Checkbox
- // $edit = array('category' => 'Contact Details', 'title' => 'Can Be Contacted', 'name' => 'profile_contact_permission');
- // $this->drupalPost('admin/people/profile/add/checkbox', $edit, t('Save field'));
- //
- // // List
- // $edit = array('category' => 'Contact Details', 'title' => 'Contact Preference', 'name' => 'profile_contact_preference', 'options' => 'email,telephone,post');
- // $this->drupalPost('admin/people/profile/add/selection', $edit, t('Save field'));
- //
- // // Freeform List
- // $edit = array('category' => 'Biography', 'title' => 'Interests', 'name' => 'profile_interests');
- // $this->drupalPost('admin/people/profile/add/list', $edit, t('Save field'));
- //
- // // URL
- // $edit = array('category' => 'Biography', 'title' => 'Blog', 'name' => 'profile_blog');
- // $this->drupalPost('admin/people/profile/add/url', $edit, t('Save field'));
- //
- // // Date
- // $edit = array('category' => 'Biography', 'title' => 'Birthday', 'name' => 'profile_birthday');
- // $this->drupalPost('admin/people/profile/add/date', $edit, t('Save field'));
- // }
- //
- // /**
- // * Match CSV columns to Profile fields
- // */
- // function settingsProfileMatch(&$edit) {
- // $edit['field_match[0][field_match]'] = 'profile-1'; // First Name
- // $edit['field_match[1][field_match]'] = 'profile-2'; // Last Name
- // $edit['field_match[10][field_match]'] = 'profile-3'; // CV
- // $edit['field_match[7][field_match]'] = 'profile-4'; // Contact Permision
- // $edit['field_match[8][field_match]'] = 'profile-5'; // Contact Preference
- // $edit['field_match[9][field_match]'] = 'profile-6'; // Interests
- // $edit['field_match[6][field_match]'] = 'profile-7'; // Blog
- // $edit['field_match[11][field_match]'] = 'profile-8'; // Birthday
- // }
- //
- // /**
- // * Check data in CSV file matches data in profiles
- // */
- // function checkProfileExist() {
- //
- // $file_path = drupal_get_path('module', 'user_import') . '/sample.txt';
- // $handle = @fopen($file_path, "r");
- // $row = 0;
- //
- // while ($csv = fgetcsv($handle, 1000, ',')) {
- //
- // if ($row > 0) {
- // $user = user_load_by_mail($csv[5]);
- // // test each data cell against Profile field content
- // $profile_first_name = isset($user->profile_first_name) ? $user->profile_first_name : '';
- // $this->assertEqual($profile_first_name, $csv[0], "[Compare CSV data to Profile data] Row: $row Field: First Name");
- //
- // $profile_last_name = isset($user->profile_last_name) ? $user->profile_last_name : '';
- // $this->assertEqual($profile_last_name, $csv[1], "[Compare CSV data to Profile data] Row: $row Field: Last Name");
- //
- // $profile_blog = isset($user->profile_blog) ? $user->profile_blog : '';
- // $this->assertEqual($profile_blog, $csv[6], "[Compare CSV data to Profile data] Row: $row Field: Blog");
- //
- // $profile_contact_permission = isset($user->profile_contact_permission) ? $user->profile_contact_permission : '';
- // $file_field_value = (!isset($csv[7]) || empty($csv[7])) ? 0 : 1;
- // $this->assertEqual($profile_contact_permission, $file_field_value, "[Compare CSV data to Profile data] Row: $row Field: Contact Permission");
- //
- // $profile_contact_preference = isset($user->profile_contact_preference) ? $user->profile_contact_preference : '';
- // $this->assertEqual($profile_contact_preference, $csv[8], "[Compare CSV data to Profile data] Row: $row Field: Contact Preference");
- //
- // $profile_interests = isset($user->profile_interests) ? $user->profile_interests : '';
- // $this->assertEqual($profile_interests, $csv[9], "[Compare CSV data to Profile data] Row: $row Field: Profile Interests");
- //
- // $profile_cv = isset($user->profile_cv) ? $user->profile_cv : '';
- // $this->assertEqual($profile_cv, $csv[10], "[Compare CSV data to Profile data] Row: $row Field: CV");
- //
- // $profile_birthday = isset($user->profile_birthday) ? implode('/', $user->profile_birthday) : '';
- //
- // if (isset($user->profile_birthday)) {
- // $profile_birthday = $user->profile_birthday['month'] . '/' . $user->profile_birthday['day'] . '/' . $user->profile_birthday['year'];
- // }
- // else {
- // $profile_birthday = '';
- // }
- //
- // $this->assertEqual($profile_birthday, $csv[11], "[Compare CSV data to Profile data] Row: $row Field: Birthday");
- // /**
- // * @todo test below fails because it gets an access denied message.
- // */
- // //test interests link on profile page
- // // if (!empty($user->profile_interests)) {
- // // $interests = explode(',', $user->profile_interests);
- // // $this->drupalGet('profile/profile_interests/' . $interests[0]);
- // // $this->assertRaw('<a title="View user profile." href="/'. url('user/'. $user->uid) .'">'. $user->name .'</a>', '[Freeform List] User is listed on page about item in list');
- // // }
- //
- // }
- //
- // $row++;
- // }
- // }
- //
- //}
|