6
6
7
7
namespace Magento \DownloadableImportExport \Test \Unit \Model \Import \Product \Type ;
8
8
9
+ use Magento \Downloadable \Model \Url \DomainValidator ;
9
10
use Magento \Framework \TestFramework \Unit \Helper \ObjectManager as ObjectManager ;
10
11
11
12
/**
@@ -39,6 +40,11 @@ class DownloadableTest extends \Magento\ImportExport\Test\Unit\Model\Import\Abst
39
40
*/
40
41
protected $ prodAttrColFacMock ;
41
42
43
+ /**
44
+ * @var DomainValidator
45
+ */
46
+ private $ domainValidator ;
47
+
42
48
/**
43
49
* @var \Magento\Catalog\Model\ResourceModel\Product\Attribute\Collection|\PHPUnit_Framework_MockObject_MockObject
44
50
*/
@@ -498,7 +504,7 @@ public function dataForSave()
498
504
/**
499
505
* @dataProvider isRowValidData
500
506
*/
501
- public function testIsRowValid (array $ rowData , $ rowNum , $ isNewProduct = true )
507
+ public function testIsRowValid (array $ rowData , $ rowNum , $ isNewProduct, $ isDomainValid , $ expectedResult )
502
508
{
503
509
$ this ->connectionMock ->expects ($ this ->any ())->method ('fetchAll ' )->with (
504
510
$ this ->select
@@ -514,6 +520,13 @@ public function testIsRowValid(array $rowData, $rowNum, $isNewProduct = true)
514
520
],
515
521
]
516
522
);
523
+
524
+ $ this ->domainValidator = $ this ->createMock (DomainValidator::class);
525
+ $ this ->domainValidator
526
+ ->expects ($ this ->any ())->method ('isValid ' )
527
+ ->withAnyParameters ()
528
+ ->willReturn ($ isDomainValid );
529
+
517
530
$ this ->downloadableModelMock = $ this ->objectManagerHelper ->getObject (
518
531
\Magento \DownloadableImportExport \Model \Import \Product \Type \Downloadable::class,
519
532
[
@@ -522,11 +535,12 @@ public function testIsRowValid(array $rowData, $rowNum, $isNewProduct = true)
522
535
'resource ' => $ this ->resourceMock ,
523
536
'params ' => $ this ->paramsArray ,
524
537
'uploaderHelper ' => $ this ->uploaderHelper ,
525
- 'downloadableHelper ' => $ this ->downloadableHelper
538
+ 'downloadableHelper ' => $ this ->downloadableHelper ,
539
+ 'domainValidator ' => $ this ->domainValidator
526
540
]
527
541
);
528
542
$ result = $ this ->downloadableModelMock ->isRowValid ($ rowData , $ rowNum , $ isNewProduct );
529
- $ this ->assertNotNull ( $ result );
543
+ $ this ->assertEquals ( $ expectedResult , $ result );
530
544
}
531
545
532
546
/**
@@ -539,7 +553,7 @@ public function isRowValidData()
539
553
{
540
554
return [
541
555
[
542
- [
556
+ ' row_data ' => [
543
557
'sku ' => 'downloadablesku1 ' ,
544
558
'product_type ' => 'downloadable ' ,
545
559
'name ' => 'Downloadable Product 1 ' ,
@@ -549,11 +563,13 @@ public function isRowValidData()
549
563
. 'downloads=unlimited, file=media/file_link.mp4,sortorder=1|group_title=Group Title, '
550
564
. 'title=Title 2, price=10, downloads=unlimited, url=media/file2.mp4,sortorder=0 ' ,
551
565
],
552
- 0 ,
553
- true
566
+ 'row_num ' => 0 ,
567
+ 'is_new_product ' => true ,
568
+ 'is_domain_valid ' => true ,
569
+ 'expected_result ' => true
554
570
],
555
571
[
556
- [
572
+ ' row_data ' => [
557
573
'sku ' => 'downloadablesku12 ' ,
558
574
'product_type ' => 'downloadable ' ,
559
575
'name ' => 'Downloadable Product 2 ' ,
@@ -563,84 +579,98 @@ public function isRowValidData()
563
579
. ' downloads=unlimited, file=media/file.mp4,sortorder=1|group_title=Group Title, '
564
580
. ' title=Title 2, price=10, downloads=unlimited, url=media/file2.mp4,sortorder=0 ' ,
565
581
],
566
- 1 ,
567
- true
582
+ 'row_num ' => 1 ,
583
+ 'is_new_product ' => true ,
584
+ 'is_domain_valid ' => true ,
585
+ 'expected_result ' => true
568
586
],
569
587
[
570
- [
588
+ ' row_data ' => [
571
589
'sku ' => 'downloadablesku12 ' ,
572
590
'product_type ' => 'downloadable ' ,
573
591
'name ' => 'Downloadable Product 2 ' ,
592
+ 'downloadable_samples ' => 'group_title=Group Title Samples, title=Title 1, file=media/file.mp4 '
593
+ .',sortorder=1|group_title=Group Title, title=Title 2, url=media/file2.mp4,sortorder=0 ' ,
594
+ 'downloadable_links ' => 'group_title=Group Title Links, title=Title 1, price=10, '
595
+ .' downloads=unlimited, file=media/file.mp4,sortorder=1|group_title=Group Title, '
596
+ .' title=Title 2, price=10, downloads=unlimited, url=media/file2.mp4,sortorder=0 ' ,
574
597
],
575
- 2 ,
576
- true
598
+ 'row_num ' => 3 ,
599
+ 'is_new_product ' => true ,
600
+ 'is_domain_valid ' => true ,
601
+ 'expected_result ' => true
577
602
],
578
603
[
579
- [
604
+ ' row_data ' => [
580
605
'sku ' => 'downloadablesku12 ' ,
581
606
'product_type ' => 'downloadable ' ,
582
607
'name ' => 'Downloadable Product 2 ' ,
583
- 'downloadable_samples ' => 'title=Title 1, file=media/file.mp4,sortorder=1|title=Title 2, '
584
- . ' url=media/file2.mp4,sortorder=0 ' ,
608
+ 'downloadable_samples ' => 'title=Title 1, file=media/file.mp4,sortorder=1|title=Title 2, ' .
609
+ ' group_title=Group Title, url=media/file2.mp4,sortorder=0 ' ,
585
610
'downloadable_links ' => 'title=Title 1, price=10, downloads=unlimited, file=media/file.mp4, '
586
611
. 'sortorder=1|group_title=Group Title, title=Title 2, price=10, downloads=unlimited, '
587
612
. ' url=media/file2.mp4,sortorder=0 ' ,
588
613
],
589
- 3 ,
590
- true
614
+ 'row_num ' => 4 ,
615
+ 'is_new_product ' => true ,
616
+ 'is_domain_valid ' => true ,
617
+ 'expected_result ' => true
591
618
],
592
- [
593
- [
619
+ [ //empty group title samples
620
+ ' row_data ' => [
594
621
'sku ' => 'downloadablesku12 ' ,
595
622
'product_type ' => 'downloadable ' ,
596
623
'name ' => 'Downloadable Product 2 ' ,
597
- 'downloadable_samples ' => 'file=media/file.mp4,sortorder=1| group_title=Group Title, '
598
- . ' url=media/file2.mp4,sortorder=0 ' ,
599
- 'downloadable_links ' => 'title= Title 1, price=10, downloads=unlimited, file=media/file.mp4 , '
600
- . ' sortorder=1|group_title=Group Title, title=Title 2, price=10, downloads=unlimited , '
601
- . ' url=media/file2.mp4,sortorder=0 ' ,
624
+ 'downloadable_samples ' => 'group_title=Group Title Samples, title=Title 1, file=media/file.mp4 '
625
+ .' ,sortorder=1|group_title=Group Title, title=Title 2, url=media/file2.mp4,sortorder=0 ' ,
626
+ 'downloadable_links ' => 'group_title=Group Title Links, title=Title 1, price=10 , '
627
+ .' downloads=unlimited, file=media/file.mp4, sortorder=1|group_title=Group Title, '
628
+ .' title=Title 2, price=10, downloads=unlimited, url=media/file2.mp4,sortorder=0 ' ,
602
629
],
603
- 4 ,
604
- true
630
+ 'row_num ' => 5 ,
631
+ 'is_new_product ' => true ,
632
+ 'is_domain_valid ' => true ,
633
+ 'expected_result ' => true
605
634
],
606
- [ //empty group title samples
607
- [
635
+ [ //empty group title links
636
+ ' row_data ' => [
608
637
'sku ' => 'downloadablesku12 ' ,
609
638
'product_type ' => 'downloadable ' ,
610
639
'name ' => 'Downloadable Product 2 ' ,
611
- 'downloadable_samples ' => 'group_title=, title=Title 1, file=media/file.mp4,sortorder=1 '
612
- . ' |group_title=, title=Title 2, url=media/file2.mp4,sortorder=0 ' ,
640
+ 'downloadable_samples ' => 'group_title=Group Title Samples , title=Title 1, file=media/file.mp4 '
641
+ .' ,sortorder=1 |group_title=Group Title , title=Title 2, url=media/file2.mp4,sortorder=0 ' ,
613
642
'downloadable_links ' => 'group_title=Group Title Links, title=Title 1, price=10, '
614
- . ' downloads=unlimited, file=media/file_link .mp4,sortorder=1|group_title=Group Title, '
615
- . ' title=Title 2, price=10, downloads=unlimited, url=media/file2.mp4,sortorder=0 ' ,
643
+ .' downloads=unlimited, file=media/file .mp4,sortorder=1|group_title=Group Title, '
644
+ .' title=Title 2, price=10, downloads=unlimited, url=media/file2.mp4,sortorder=0 ' ,
616
645
],
617
- 5 ,
618
- true
646
+ 'row_num ' => 6 ,
647
+ 'is_new_product ' => true ,
648
+ 'is_domain_valid ' => true ,
649
+ 'expected_result ' => true
619
650
],
620
- [ //empty group title links
621
- [
651
+ [
652
+ ' row_data ' => [
622
653
'sku ' => 'downloadablesku12 ' ,
623
654
'product_type ' => 'downloadable ' ,
624
655
'name ' => 'Downloadable Product 2 ' ,
625
- 'downloadable_samples ' => 'group_title=Group Title Samples, title=Title 1, file=media/file.mp4, '
626
- . 'sortorder=1|group_title=Group Title, title=Title 2, url=media/file2.mp4,sortorder=0 ' ,
627
- 'downloadable_links ' => 'group_title=, title=Title 1, price=10, downloads=unlimited, '
628
- . 'file=media/file_link.mp4,sortorder=1|group_title=, title=Title 2, price=10, '
629
- . 'downloads=unlimited, url=media/file2.mp4,sortorder=0 ' ,
630
656
],
631
- 6 ,
632
- true
657
+ 'row_num ' => 2 ,
658
+ 'is_new_product ' => false ,
659
+ 'is_domain_valid ' => true ,
660
+ 'expected_result ' => true
633
661
],
634
662
[
635
- [
663
+ ' row_data ' => [
636
664
'sku ' => 'downloadablesku12 ' ,
637
665
'product_type ' => 'downloadable ' ,
638
666
'name ' => 'Downloadable Product 2 ' ,
639
667
'downloadable_samples ' => '' ,
640
668
'downloadable_links ' => '' ,
641
669
],
642
- 7 ,
643
- true
670
+ 'row_num ' => 7 ,
671
+ 'is_new_product ' => true ,
672
+ 'is_domain_valid ' => true ,
673
+ 'expected_result ' => false
644
674
],
645
675
];
646
676
}
0 commit comments