fix and test ordering
This commit is contained in:
+47
-5
@@ -653,8 +653,8 @@ class BibtexbrowserTest extends PHPUnit_Framework_TestCase {
|
|||||||
ob_get_clean();
|
ob_get_clean();
|
||||||
|
|
||||||
// the indices have been set by SimpleDisplay
|
// the indices have been set by SimpleDisplay
|
||||||
$this->assertEquals("[1]", $btb->getEntryByKey('aKey')->getAbbrv());
|
$this->assertEquals("[3]", $btb->getEntryByKey('aKey')->getAbbrv());
|
||||||
$this->assertEquals("[3]", $btb->getEntryByKey('aKey-withSlash')->getAbbrv());
|
$this->assertEquals("[1]", $btb->getEntryByKey('aKey-withSlash')->getAbbrv());
|
||||||
|
|
||||||
// SimpleDisplayExt sets the indices differently, using setIndicesInIncreasingOrderChangingEveryYear
|
// SimpleDisplayExt sets the indices differently, using setIndicesInIncreasingOrderChangingEveryYear
|
||||||
$d = new SimpleDisplayExt();
|
$d = new SimpleDisplayExt();
|
||||||
@@ -662,7 +662,7 @@ class BibtexbrowserTest extends PHPUnit_Framework_TestCase {
|
|||||||
ob_start();
|
ob_start();
|
||||||
$d->display();
|
$d->display();
|
||||||
ob_get_clean();
|
ob_get_clean();
|
||||||
$this->assertEquals("[2]", $btb->getEntryByKey('aKey')->getAbbrv());
|
$this->assertEquals("[1]", $btb->getEntryByKey('aKey')->getAbbrv());
|
||||||
$this->assertEquals("[1]", $btb->getEntryByKey('aKey-withSlash')->getAbbrv());
|
$this->assertEquals("[1]", $btb->getEntryByKey('aKey-withSlash')->getAbbrv());
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -749,6 +749,7 @@ class BibtexbrowserTest extends PHPUnit_Framework_TestCase {
|
|||||||
|
|
||||||
|
|
||||||
function test_before() {
|
function test_before() {
|
||||||
|
// contract: the ordering is chronological
|
||||||
$bibtex = "@article{doe2000,title={An article},author={Jane Doe},journal={The Wordpress Journal},year=2000}@book{doo2001,title={A book},author={Jane Doe},year=2001}";
|
$bibtex = "@article{doe2000,title={An article},author={Jane Doe},journal={The Wordpress Journal},year=2000}@book{doo2001,title={A book},author={Jane Doe},year=2001}";
|
||||||
$test_data = fopen('php://memory','x+');
|
$test_data = fopen('php://memory','x+');
|
||||||
fwrite($test_data, $bibtex);
|
fwrite($test_data, $bibtex);
|
||||||
@@ -767,7 +768,7 @@ class BibtexbrowserTest extends PHPUnit_Framework_TestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function test80() {
|
function test80() {
|
||||||
// entries without year are at the top
|
// contract: entries without year are at the top
|
||||||
$bibtex = "@article{keyWithoutYear,title={First article},author = {Martin}},@article{key2,title={Second article},author = {Martin}, year=2007}";
|
$bibtex = "@article{keyWithoutYear,title={First article},author = {Martin}},@article{key2,title={Second article},author = {Martin}, year=2007}";
|
||||||
$test_data = fopen('php://memory','x+');
|
$test_data = fopen('php://memory','x+');
|
||||||
fwrite($test_data, $bibtex);
|
fwrite($test_data, $bibtex);
|
||||||
@@ -860,7 +861,48 @@ class BibtexbrowserTest extends PHPUnit_Framework_TestCase {
|
|||||||
$this->assertEquals('Preferential polarization and its reversal in polycrystalline $BiFeO_{3}$/$La_{0. 5}Sr_{0.5} CoO_{3}$ heterostructures', $db->bibdb['doe2000']->getTitle());
|
$this->assertEquals('Preferential polarization and its reversal in polycrystalline $BiFeO_{3}$/$La_{0. 5}Sr_{0.5} CoO_{3}$ heterostructures', $db->bibdb['doe2000']->getTitle());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function test_sorting_year() {
|
||||||
|
$bibtex = "@article{doe2004,year=2004},@article{doe1999,year=1999},@article{doe2000,year=2000}";
|
||||||
|
$test_data = fopen('php://memory','x+');
|
||||||
|
fwrite($test_data, $bibtex);
|
||||||
|
fseek($test_data,0);
|
||||||
|
$db = new BibDataBase();
|
||||||
|
$db->update_internal("inline", $test_data);
|
||||||
|
// print_r($db);
|
||||||
|
$data = array_values($db->bibdb);
|
||||||
|
$this->assertEquals("2004", $data[0]->getYear());
|
||||||
|
$this->assertEquals("1999", $data[1]->getYear());
|
||||||
|
$this->assertEquals("2000", $data[2]->getYear());
|
||||||
|
usort($data, 'compare_bib_entry_by_year');
|
||||||
|
|
||||||
|
$this->assertEquals("1999", $data[0]->getYear());
|
||||||
|
$this->assertEquals("2000", $data[1]->getYear());
|
||||||
|
$this->assertEquals("2004", $data[2]->getYear());
|
||||||
|
|
||||||
|
$bibtex = "@article{doe2004,year=2004},@article{doe1999,year=1999},@article{doe2000,year=2000}";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_sorting_month() {
|
||||||
|
$bibtex = "@article{doe2004,year=2004, month={may}},@article{doe1999,year=2004,month={jan}},@article{doe2000,year=2000, month={dec}}";
|
||||||
|
$test_data = fopen('php://memory','x+');
|
||||||
|
fwrite($test_data, $bibtex);
|
||||||
|
fseek($test_data,0);
|
||||||
|
$db = new BibDataBase();
|
||||||
|
$db->update_internal("inline", $test_data);
|
||||||
|
// print_r($db);
|
||||||
|
$data = array_values($db->bibdb);
|
||||||
|
$this->assertEquals("may", $data[0]->getField("month"));
|
||||||
|
usort($data, 'compare_bib_entry_by_month');
|
||||||
|
|
||||||
|
$this->assertEquals("jan", $data[0]->getField("month"));
|
||||||
|
$this->assertEquals("may", $data[1]->getField("month"));
|
||||||
|
$this->assertEquals("dec", $data[2]->getField("month"));
|
||||||
|
|
||||||
|
$bibtex = "@article{doe2004,year=2004},@article{doe1999,year=1999},@article{doe2000,year=2000}";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
} // end class
|
} // end class
|
||||||
|
|
||||||
|
|||||||
+14
-15
@@ -218,10 +218,10 @@ if (defined('ENCODING')) {
|
|||||||
// define sort order for special values in 'year' field
|
// define sort order for special values in 'year' field
|
||||||
// highest number is sorted first
|
// highest number is sorted first
|
||||||
// don't exceed 0 though, since the values are added to PHP_INT_MAX
|
// don't exceed 0 though, since the values are added to PHP_INT_MAX
|
||||||
@define('ORDER_YEAR_INPRESS', -0);
|
@define('ORDER_YEAR_INPRESS', 0);
|
||||||
@define('ORDER_YEAR_ACCEPTED', -1);
|
@define('ORDER_YEAR_ACCEPTED', 1);
|
||||||
@define('ORDER_YEAR_SUBMITTED', -2);
|
@define('ORDER_YEAR_SUBMITTED', 2);
|
||||||
@define('ORDER_YEAR_OTHERNONINT', -3);
|
@define('ORDER_YEAR_OTHERNONINT', 3);
|
||||||
|
|
||||||
|
|
||||||
// in embedded mode, we still need a URL for displaying bibtex entries alone
|
// in embedded mode, we still need a URL for displaying bibtex entries alone
|
||||||
@@ -2157,38 +2157,38 @@ function compare_bib_entry_by_year($a, $b)
|
|||||||
if ($yearA === 0) {
|
if ($yearA === 0) {
|
||||||
switch (strtolower($a->getYearRaw())) {
|
switch (strtolower($a->getYearRaw())) {
|
||||||
case Q_YEAR_INPRESS:
|
case Q_YEAR_INPRESS:
|
||||||
$yearA = PHP_INT_MAX + ORDER_YEAR_INPRESS;
|
$yearA = PHP_INT_MIN + ORDER_YEAR_INPRESS;
|
||||||
break;
|
break;
|
||||||
case Q_YEAR_ACCEPTED:
|
case Q_YEAR_ACCEPTED:
|
||||||
$yearA = PHP_INT_MAX + ORDER_YEAR_ACCEPTED;
|
$yearA = PHP_INT_MIN + ORDER_YEAR_ACCEPTED;
|
||||||
break;
|
break;
|
||||||
case Q_YEAR_SUBMITTED:
|
case Q_YEAR_SUBMITTED:
|
||||||
$yearA = PHP_INT_MAX + ORDER_YEAR_SUBMITTED;
|
$yearA = PHP_INT_MIN + ORDER_YEAR_SUBMITTED;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$yearA = PHP_INT_MAX + ORDER_YEAR_OTHERNONINT;
|
$yearA = PHP_INT_MIN + ORDER_YEAR_OTHERNONINT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($yearB === 0) {
|
if ($yearB === 0) {
|
||||||
switch (strtolower($b->getYearRaw())) {
|
switch (strtolower($b->getYearRaw())) {
|
||||||
case Q_YEAR_INPRESS:
|
case Q_YEAR_INPRESS:
|
||||||
$yearB = PHP_INT_MAX + ORDER_YEAR_INPRESS;
|
$yearB = PHP_INT_MIN + ORDER_YEAR_INPRESS;
|
||||||
break;
|
break;
|
||||||
case Q_YEAR_ACCEPTED:
|
case Q_YEAR_ACCEPTED:
|
||||||
$yearB = PHP_INT_MAX + ORDER_YEAR_ACCEPTED;
|
$yearB = PHP_INT_MIN + ORDER_YEAR_ACCEPTED;
|
||||||
break;
|
break;
|
||||||
case Q_YEAR_SUBMITTED:
|
case Q_YEAR_SUBMITTED:
|
||||||
$yearB = PHP_INT_MAX + ORDER_YEAR_SUBMITTED;
|
$yearB = PHP_INT_MIN + ORDER_YEAR_SUBMITTED;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$yearB = PHP_INT_MAX + ORDER_YEAR_OTHERNONINT;
|
$yearB = PHP_INT_MIN + ORDER_YEAR_OTHERNONINT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($yearA === $yearB)
|
if ($yearA === $yearB)
|
||||||
return 0;
|
return 0;
|
||||||
else if ($yearA > $yearB)
|
else if ($yearA < $yearB)
|
||||||
return -1;
|
return -1;
|
||||||
else
|
else
|
||||||
return 1;
|
return 1;
|
||||||
@@ -2242,7 +2242,6 @@ function compare_bib_entry_by_month($a, $b)
|
|||||||
//desired order of values
|
//desired order of values
|
||||||
$sort_order_values = array('jan','january','feb','february','mar','march','apr','april','may','jun','june','jul','july','aug','august','sep','september','oct','october','nov','november','dec','december');
|
$sort_order_values = array('jan','january','feb','february','mar','march','apr','april','may','jun','june','jul','july','aug','august','sep','september','oct','october','nov','november','dec','december');
|
||||||
//order: 1=as specified in $sort_order_values or -1=reversed
|
//order: 1=as specified in $sort_order_values or -1=reversed
|
||||||
$order = -1;
|
|
||||||
|
|
||||||
|
|
||||||
//first check if the search key exists
|
//first check if the search key exists
|
||||||
@@ -2278,7 +2277,7 @@ function compare_bib_entry_by_month($a, $b)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $order*$retval;
|
return $retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** is the default sectioning for AcademicDisplay (books, articles, proceedings, etc. ) */
|
/** is the default sectioning for AcademicDisplay (books, articles, proceedings, etc. ) */
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
array (
|
array (
|
||||||
'rendered' => '<p>[wp-publications bib=sample.bib all=1] gives:<br />
|
'rendered' => '<p>[wp-publications bib=sample.bib all=1] gives:<br />
|
||||||
<table class="result">
|
<table class="result">
|
||||||
<tr><td colspan="2" class="sheader">2001</td></tr>
|
|
||||||
<tr class="bibline"><td class="bibref"><a class="bibanchor" name="2"></a>[2]</td><td class="bibitem"><span itemscope="" itemtype="http://schema.org/ScholarlyArticle"><span class="bibtitle" itemprop="name">A book</span> (<span class="bibauthor"><span itemprop="author" itemtype="http://schema.org/Person">Jane Doe</span></span>), <span itemprop="datePublished">2001</span>.<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.btitle=A+book&rft.genre=book&rft.pub=&rfr_id=info%3Asid%2F%3Asample.bib&rft.date=2001&rft.au=Jane+Doe"></span></span> <span class="bibmenu"><a class="biburl" title="doo2001" href="http://bibtexbrowser.com/?wp-publications=doo2001">[bibtex]</a></span></td></tr>
|
|
||||||
<tr><td colspan="2" class="sheader">2000</td></tr>
|
<tr><td colspan="2" class="sheader">2000</td></tr>
|
||||||
<tr class="bibline"><td class="bibref"><a class="bibanchor" name="1"></a>[1]</td><td class="bibitem"><span itemscope="" itemtype="http://schema.org/ScholarlyArticle"><span class="bibtitle" itemprop="name">An article</span> (<span class="bibauthor"><span itemprop="author" itemtype="http://schema.org/Person">Jane Doe</span></span>), <span class="bibbooktitle">In <span itemprop="isPartOf">The Wordpress Journal</span></span>, <span itemprop="datePublished">2000</span>.<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.atitle=An+article&rft.jtitle=The+Wordpress+Journal&rft.volume=&rft.issue=&rft.pub=&rfr_id=info%3Asid%2F%3Asample.bib&rft.date=2000&rft.au=Jane+Doe"></span></span> <span class="bibmenu"><a class="biburl" title="doe2000" href="http://bibtexbrowser.com/?wp-publications=doe2000">[bibtex]</a></span></td></tr>
|
<tr class="bibline"><td class="bibref"><a class="bibanchor" name="2"></a>[2]</td><td class="bibitem"><span itemscope="" itemtype="http://schema.org/ScholarlyArticle"><span class="bibtitle" itemprop="name">An article</span> (<span class="bibauthor"><span itemprop="author" itemtype="http://schema.org/Person">Jane Doe</span></span>), <span class="bibbooktitle">In <span itemprop="isPartOf">The Wordpress Journal</span></span>, <span itemprop="datePublished">2000</span>.<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.atitle=An+article&rft.jtitle=The+Wordpress+Journal&rft.volume=&rft.issue=&rft.pub=&rfr_id=info%3Asid%2F%3Asample.bib&rft.date=2000&rft.au=Jane+Doe"></span></span> <span class="bibmenu"><a class="biburl" title="doe2000" href="http://bibtexbrowser.com/?wp-publications=doe2000">[bibtex]</a></span></td></tr>
|
||||||
|
<tr><td colspan="2" class="sheader">2001</td></tr>
|
||||||
|
<tr class="bibline"><td class="bibref"><a class="bibanchor" name="1"></a>[1]</td><td class="bibitem"><span itemscope="" itemtype="http://schema.org/ScholarlyArticle"><span class="bibtitle" itemprop="name">A book</span> (<span class="bibauthor"><span itemprop="author" itemtype="http://schema.org/Person">Jane Doe</span></span>), <span itemprop="datePublished">2001</span>.<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.btitle=A+book&rft.genre=book&rft.pub=&rfr_id=info%3Asid%2F%3Asample.bib&rft.date=2001&rft.au=Jane+Doe"></span></span> <span class="bibmenu"><a class="biburl" title="doo2001" href="http://bibtexbrowser.com/?wp-publications=doo2001">[bibtex]</a></span></td></tr>
|
||||||
</table></p>
|
</table></p>
|
||||||
',
|
',
|
||||||
'protected' => false,
|
'protected' => false,
|
||||||
|
|||||||
Reference in New Issue
Block a user