function addLocationContentType(&$settings, $add = array())
 {
     // find a non-existent random type name.
     do {
         $name = strtolower($this->randomName(3, 'type_'));
     } while (node_get_types('type', $name));
     // Get the (settable) defaults.
     $defaults = array();
     $d = location_invoke_locationapi($location, 'defaults');
     $fields = location_field_names();
     foreach ($fields as $k => $v) {
         if (!isset($v['nodiff'])) {
             $defaults[$k] = $d[$k];
         }
     }
     foreach ($defaults as $k => $v) {
         // Change collection to allow.
         $defaults[$k]['collect'] = 1;
     }
     $settings = array('name' => $name, 'type' => $name, 'location_settings' => array('multiple' => array('max' => 1, 'add' => 1), 'form' => array('fields' => $defaults)));
     //$settings['location_settings'] = array_merge_recursive($settings['location_settings'], $add);
     $this->flattenPostData($settings);
     $add = array('location_settings' => $add);
     $this->flattenPostData($add);
     $settings = array_merge($settings, $add);
     $this->drupalPost('admin/content/types/add', $settings, 'Save content type');
     $this->refreshVariables();
     $settings = variable_get('location_settings_node_' . $name, array());
     return $name;
 }
 /**
  * Get a set of location field defaults.
  * This will also enable collection on all parts of the location field.
  */
 function getLocationFieldDefaults()
 {
     // Get the (settable) defaults.
     $defaults = array();
     $d = location_invoke_locationapi($location, 'defaults');
     $fields = location_field_names();
     foreach ($fields as $k => $v) {
         if (!isset($d[$k]['nodiff'])) {
             $defaults[$k] = $d[$k];
         }
     }
     foreach ($defaults as $k => $v) {
         // Change collection to allow.
         $defaults[$k]['collect'] = 1;
     }
     return $defaults;
 }