| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 | <?phpnamespace Tests\includes;use StatonLab\TripalTestSuite\DBTransaction;use StatonLab\TripalTestSuite\TripalTestCase;class LinkoutTest extends TripalTestCase {  // Uncomment to auto start and rollback db transactions per test method.  use DBTransaction;  /**   * Test tripal_blast_generate_linkout_link().   *   * @dataProvider provideBlastHit   */  public function testGeneralLinkout($hit) {    // Test with no query parameters.    $url_prefix = 'http://fake/url/prefix';    $info = [      'query_name' => 'Fred',      'score' => 33,      'e-value' => '3.4e-55',    ];    $hit->{'linkout_id'} = 'Sarah';    $result = tripal_blast_generate_linkout_link($url_prefix, $hit, $info);    $expect = '<a href="http://fake/url/prefixSarah" target="_blank">Sarah</a>';    $this->assertEquals($expect, $result);    // Check with Query paramters.    $url_prefix = 'http://fake/url/prefix?me=you&he=her&hit=';    $result = tripal_blast_generate_linkout_link($url_prefix, $hit, $info);    $expect = '<a href="http://fake/url/prefix?me=you&he=her&hit=Sarah" target="_blank">Sarah</a>';    $this->assertEquals($expect, $result);  }  /**   * Test tripal_blast_generate_linkout_gbrowse().   *   * @dataProvider provideBlastHit   */  public function testGBrowseLinkout($hit) {    // Process HSPs for $info.    foreach ($hit->{'Hit_hsps'}->children() as $hsp_xml) {      $HSPs[] = (array) $hsp_xml;    }    // Test with no query parameters.    $url_prefix = 'http://fake/url/prefix';    $info = [      'query_name' => 'Fred',      'score' => 33,      'e-value' => '3.4e-55',      'HSPs' => $HSPs,    ];    $hit->{'linkout_id'} = 'Sarah';    $result = tripal_blast_generate_linkout_gbrowse($url_prefix, $hit, $info);    $expect = '<a href="http://fake/url/prefix?ref=Sarah;&start=1684180;&stop=4062210;&add=Sarah%20BLAST%20BlastHit%204058460..4058900%2C4061822..4062210%2C4059787..4060062%2C4059171..4059331%2C4060624..4060765%2C4061617..4061719%2C4061248..4061345%2C4059420..4059514%2C4061415..4061500%2C1684180..1684365%2C4060282..4060361%2C4059598..4059660%2C4060479..4060539%2C4059018..4059076%2C4060854..4060909%2C1686050..1686133%2C1685333..1685464%2C1685160..1685217%2C2213219..2213247;&h_feat=BlastHit" target="_blank">Sarah</a>';    $this->assertEquals($expect, $result);  }  /**   * Test tripal_blast_generate_linkout_jbrowse().   *   * @dataProvider provideBlastHit   */  public function testJBrowseLinkout($hit) {    // Proccess the HSPs for $info.    foreach ($hit->{'Hit_hsps'}->children() as $hsp_xml) {      $HSPs[] = (array) $hsp_xml;    }    // Test with no query parameters.    $url_prefix = 'http://myserver.com/jbrowse/databasica/?tracks=myfavtrack,anoktrack,blast&';    $info = [      'query_name' => 'Fred',      'score' => 33,      'e-value' => '3.4e-55',      'HSPs' => $HSPs,    ];    $hit->{'linkout_id'} = 'Sarah';    $hit->{'hit_name'} = 'Needleman';    $result = tripal_blast_generate_linkout_jbrowse($url_prefix, $hit, $info);    $expect = '<a href="http://myserver.com/jbrowse/databasica/?tracks=myfavtrack,anoktrack,blast&loc=Sarah:1287842..4458548&addFeatures=[{"seq_id":"Sarah","start":1684180,"end":4062210,"name":"Fred Blast Hit","strand":1,"subfeatures":[{"start":4058460,"end":4058900,"strand":"1","type":"match_part"},{"start":4061822,"end":4062210,"strand":"1","type":"match_part"},{"start":4059787,"end":4060062,"strand":"1","type":"match_part"},{"start":4059171,"end":4059331,"strand":"1","type":"match_part"},{"start":4060624,"end":4060765,"strand":"1","type":"match_part"},{"start":4061617,"end":4061719,"strand":"1","type":"match_part"},{"start":4061248,"end":4061345,"strand":"1","type":"match_part"},{"start":4059420,"end":4059514,"strand":"1","type":"match_part"},{"start":4061415,"end":4061500,"strand":"1","type":"match_part"},{"start":1684180,"end":1684365,"strand":"1","type":"match_part"},{"start":4060282,"end":4060361,"strand":"1","type":"match_part"},{"start":4059598,"end":4059660,"strand":"1","type":"match_part"},{"start":4060479,"end":4060539,"strand":"1","type":"match_part"},{"start":4059018,"end":4059076,"strand":"1","type":"match_part"},{"start":4060854,"end":4060909,"strand":"1","type":"match_part"},{"start":1686050,"end":1686133,"strand":"1","type":"match_part"},{"start":1685333,"end":1685464,"strand":"1","type":"match_part"},{"start":1685160,"end":1685217,"strand":"1","type":"match_part"},{"start":2213219,"end":2213247,"strand":"-1","type":"match_part"}]}]&addTracks=[{"label":"blast","key":"BLAST Result","type":"JBrowse/View/Track/CanvasFeatures","store":"url"}]" target="_blank">Sarah</a>';    $this->assertEquals($expect, $result);  }  /**   * Data Provider   */  public function provideBlastHit() {    $result = simplexml_load_file(      DRUPAL_ROOT .'/'. drupal_get_path('module','blast_ui')      .'/tests/test_files/Citrus_sinensis-orange1.1g015632m.blastresults.xml'    );    $hit = $result->{'BlastOutput_iterations'}->{'Iteration'}[0]->{'Iteration_hits'}->{'Hit'};        return [[$hit]];  }}
 |