Files
Yajbir Singh f1b860b25c
Some checks failed
check / markdownlint (push) Has been cancelled
check / spellchecker (push) Has been cancelled
updated
2025-12-11 19:03:17 +05:30

301 lines
14 KiB
JavaScript

/*
* (c) Copyright Ascensio System SIA 2010-2024
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
QUnit.config.autostart = false;
$(function () {
const arrSmartArtTypesWithoutImagePlaceholders = [
Asc.c_oAscSmartArtTypes.Balance,
Asc.c_oAscSmartArtTypes.BlockCycle,
Asc.c_oAscSmartArtTypes.StackedVenn,
Asc.c_oAscSmartArtTypes.VerticalEquation,
Asc.c_oAscSmartArtTypes.VerticalBlockList,
Asc.c_oAscSmartArtTypes.VerticalBendingProcess,
Asc.c_oAscSmartArtTypes.VerticalBulletList,
Asc.c_oAscSmartArtTypes.VerticalCurvedList,
Asc.c_oAscSmartArtTypes.VerticalProcess,
Asc.c_oAscSmartArtTypes.VerticalBoxList,
Asc.c_oAscSmartArtTypes.VerticalCircleList,
Asc.c_oAscSmartArtTypes.VerticalArrowList,
Asc.c_oAscSmartArtTypes.VerticalChevronList,
Asc.c_oAscSmartArtTypes.VerticalAccentList,
Asc.c_oAscSmartArtTypes.NestedTarget,
Asc.c_oAscSmartArtTypes.Funnel,
Asc.c_oAscSmartArtTypes.UpwardArrow,
Asc.c_oAscSmartArtTypes.IncreasingArrowsProcess,
Asc.c_oAscSmartArtTypes.StepUpProcess,
Asc.c_oAscSmartArtTypes.HorizontalHierarchy,
Asc.c_oAscSmartArtTypes.HorizontalLabeledHierarchy,
Asc.c_oAscSmartArtTypes.HorizontalMultiLevelHierarchy,
Asc.c_oAscSmartArtTypes.HorizontalOrganizationChart,
Asc.c_oAscSmartArtTypes.HorizontalBulletList,
Asc.c_oAscSmartArtTypes.ClosedChevronProcess,
Asc.c_oAscSmartArtTypes.HierarchyList,
Asc.c_oAscSmartArtTypes.Hierarchy,
Asc.c_oAscSmartArtTypes.LabeledHierarchy,
Asc.c_oAscSmartArtTypes.InvertedPyramid,
Asc.c_oAscSmartArtTypes.CircleRelationship,
Asc.c_oAscSmartArtTypes.CircleAccentTimeline,
Asc.c_oAscSmartArtTypes.CircularBendingProcess,
Asc.c_oAscSmartArtTypes.ArrowRibbon,
Asc.c_oAscSmartArtTypes.LinearVenn,
Asc.c_oAscSmartArtTypes.TitledMatrix,
Asc.c_oAscSmartArtTypes.IncreasingCircleProcess,
Asc.c_oAscSmartArtTypes.NonDirectionalCycle,
Asc.c_oAscSmartArtTypes.ContinuousBlockProcess,
Asc.c_oAscSmartArtTypes.ContinuousCycle,
Asc.c_oAscSmartArtTypes.DescendingBlockList,
Asc.c_oAscSmartArtTypes.StepDownProcess,
Asc.c_oAscSmartArtTypes.ReverseList,
Asc.c_oAscSmartArtTypes.OrganizationChart,
Asc.c_oAscSmartArtTypes.NameAndTitleOrganizationChart,
Asc.c_oAscSmartArtTypes.AlternatingFlow,
Asc.c_oAscSmartArtTypes.PyramidList,
Asc.c_oAscSmartArtTypes.PlusAndMinus,
Asc.c_oAscSmartArtTypes.RepeatingBendingProcess,
Asc.c_oAscSmartArtTypes.DetailedProcess,
Asc.c_oAscSmartArtTypes.HalfCircleOrganizationChart,
Asc.c_oAscSmartArtTypes.PhasedProcess,
Asc.c_oAscSmartArtTypes.BasicVenn,
Asc.c_oAscSmartArtTypes.BasicTimeline,
Asc.c_oAscSmartArtTypes.BasicPie,
Asc.c_oAscSmartArtTypes.BasicMatrix,
Asc.c_oAscSmartArtTypes.BasicPyramid,
Asc.c_oAscSmartArtTypes.BasicRadial,
Asc.c_oAscSmartArtTypes.BasicTarget,
Asc.c_oAscSmartArtTypes.BasicBlockList,
Asc.c_oAscSmartArtTypes.BasicBendingProcess,
Asc.c_oAscSmartArtTypes.BasicProcess,
Asc.c_oAscSmartArtTypes.BasicChevronProcess,
Asc.c_oAscSmartArtTypes.BasicCycle,
Asc.c_oAscSmartArtTypes.OpposingIdeas,
Asc.c_oAscSmartArtTypes.OpposingArrows,
Asc.c_oAscSmartArtTypes.RandomToResultProcess,
Asc.c_oAscSmartArtTypes.SubStepProcess,
Asc.c_oAscSmartArtTypes.PieProcess,
Asc.c_oAscSmartArtTypes.AccentProcess,
Asc.c_oAscSmartArtTypes.RadialVenn,
Asc.c_oAscSmartArtTypes.RadialCycle,
Asc.c_oAscSmartArtTypes.RadialCluster,
Asc.c_oAscSmartArtTypes.RadialList,
Asc.c_oAscSmartArtTypes.MultiDirectionalCycle,
Asc.c_oAscSmartArtTypes.DivergingRadial,
Asc.c_oAscSmartArtTypes.DivergingArrows,
Asc.c_oAscSmartArtTypes.GroupedList,
Asc.c_oAscSmartArtTypes.SegmentedPyramid,
Asc.c_oAscSmartArtTypes.SegmentedProcess,
Asc.c_oAscSmartArtTypes.SegmentedCycle,
Asc.c_oAscSmartArtTypes.GridMatrix,
Asc.c_oAscSmartArtTypes.StackedList,
Asc.c_oAscSmartArtTypes.ProcessList,
Asc.c_oAscSmartArtTypes.SquareAccentList,
Asc.c_oAscSmartArtTypes.LinedList,
Asc.c_oAscSmartArtTypes.ContinuousArrowProcess,
Asc.c_oAscSmartArtTypes.CircleArrowProcess,
Asc.c_oAscSmartArtTypes.ProcessArrows,
Asc.c_oAscSmartArtTypes.StaggeredProcess,
Asc.c_oAscSmartArtTypes.ConvergingRadial,
Asc.c_oAscSmartArtTypes.ConvergingArrows,
Asc.c_oAscSmartArtTypes.TableHierarchy,
Asc.c_oAscSmartArtTypes.TableList,
Asc.c_oAscSmartArtTypes.TextCycle,
Asc.c_oAscSmartArtTypes.TrapezoidList,
Asc.c_oAscSmartArtTypes.DescendingProcess,
Asc.c_oAscSmartArtTypes.ChevronList,
Asc.c_oAscSmartArtTypes.Equation,
Asc.c_oAscSmartArtTypes.CounterbalanceArrows,
Asc.c_oAscSmartArtTypes.TargetList,
Asc.c_oAscSmartArtTypes.CycleMatrix,
Asc.c_oAscSmartArtTypes.AlternatingHexagonList,
Asc.c_oAscSmartArtTypes.Gear,
Asc.c_oAscSmartArtTypes.ArchitectureLayout,
Asc.c_oAscSmartArtTypes.ChevronAccentProcess,
Asc.c_oAscSmartArtTypes.CircleProcess,
Asc.c_oAscSmartArtTypes.ConvergingText,
Asc.c_oAscSmartArtTypes.HexagonRadial,
Asc.c_oAscSmartArtTypes.InterconnectedBlockProcess,
Asc.c_oAscSmartArtTypes.InterconnectedRings,
Asc.c_oAscSmartArtTypes.TabList,
Asc.c_oAscSmartArtTypes.TabbedArc,
Asc.c_oAscSmartArtTypes.VaryingWidthList,
Asc.c_oAscSmartArtTypes.VerticalBracketList
];
const arrSmartArtTypesWithImagePlaceholders = [
Asc.c_oAscSmartArtTypes.AccentedPicture,
Asc.c_oAscSmartArtTypes.CircularPictureCallout,
Asc.c_oAscSmartArtTypes.PictureCaptionList,
Asc.c_oAscSmartArtTypes.RadialPictureList,
Asc.c_oAscSmartArtTypes.SnapshotPictureList,
Asc.c_oAscSmartArtTypes.SpiralPicture,
Asc.c_oAscSmartArtTypes.CaptionedPictures,
Asc.c_oAscSmartArtTypes.BendingPictureCaption,
Asc.c_oAscSmartArtTypes.PictureFrame,
Asc.c_oAscSmartArtTypes.BendingPictureSemiTransparentText,
Asc.c_oAscSmartArtTypes.BendingPictureBlocks,
Asc.c_oAscSmartArtTypes.BendingPictureCaptionList,
Asc.c_oAscSmartArtTypes.TitledPictureBlocks,
Asc.c_oAscSmartArtTypes.PictureGrid,
Asc.c_oAscSmartArtTypes.PictureAccentBlocks,
Asc.c_oAscSmartArtTypes.PictureStrips,
Asc.c_oAscSmartArtTypes.ThemePictureAccent,
Asc.c_oAscSmartArtTypes.ThemePictureGrid,
Asc.c_oAscSmartArtTypes.ThemePictureAlternatingAccent,
Asc.c_oAscSmartArtTypes.TitledPictureAccentList,
Asc.c_oAscSmartArtTypes.AlternatingPictureBlocks,
Asc.c_oAscSmartArtTypes.AscendingPictureAccentProcess,
Asc.c_oAscSmartArtTypes.AlternatingPictureCircles,
Asc.c_oAscSmartArtTypes.TitlePictureLineup,
Asc.c_oAscSmartArtTypes.PictureLineup,
Asc.c_oAscSmartArtTypes.FramedTextPicture,
Asc.c_oAscSmartArtTypes.HexagonCluster,
Asc.c_oAscSmartArtTypes.BubblePictureList,
Asc.c_oAscSmartArtTypes.CirclePictureHierarchy,
Asc.c_oAscSmartArtTypes.HorizontalPictureList,
Asc.c_oAscSmartArtTypes.ContinuousPictureList,
Asc.c_oAscSmartArtTypes.VerticalPictureList,
Asc.c_oAscSmartArtTypes.VerticalPictureAccentList,
Asc.c_oAscSmartArtTypes.BendingPictureAccentList,
Asc.c_oAscSmartArtTypes.PictureAccentList,
Asc.c_oAscSmartArtTypes.PictureAccentProcess,
Asc.c_oAscSmartArtTypes.PictureOrganizationChart,
];
function getSmartArtByType(nSmartArtType)
{
const oSmartArt = new AscFormat.SmartArt();
oSmartArt.fillByPreset(nSmartArtType);
return oSmartArt;
}
AscTest.CreateLogicDocument();
AscCommon.g_oBinarySmartArts.checkLoadDrawing().then(function ()
{
const arrPromises = [];
for (let sSmartArtType in Asc.c_oAscSmartArtTypes)
{
arrPromises.push(AscCommon.g_oBinarySmartArts.checkLoadData(Asc.c_oAscSmartArtTypes[sSmartArtType]));
}
return Promise.all(arrPromises);
}).then(function ()
{
startTests();
});
QUnit.module("Test truth smart art image placeholders");
function startTests()
{
QUnit.start();
QUnit.test("Test smartarts without image placeholders", function (assert)
{
for (let i = 0; i < arrSmartArtTypesWithoutImagePlaceholders.length; i += 1)
{
const nSmartArtType = arrSmartArtTypesWithoutImagePlaceholders[i];
const oSmartArt = new AscFormat.SmartArt();
oSmartArt.fillByPreset(nSmartArtType);
let bHaveImagePlaceholder = false;
oSmartArt.spTree[0].spTree.forEach(function (oShape)
{
bHaveImagePlaceholder = bHaveImagePlaceholder || !!oShape.isActiveBlipFillPlaceholder();
});
assert.strictEqual(bHaveImagePlaceholder, false, 'Test smartart with ' + nSmartArtType + ' nType');
}
});
const oAnswersSmartArtWithPlaceholders = {};
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.AccentedPicture] = [0, 2, 4, 6];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.CircularPictureCallout] = [3, 5, 7, 9];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.PictureCaptionList] = [0, 2, 4, 6];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.RadialPictureList] = [2, 4, 6];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.SnapshotPictureList] = [2];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.SpiralPicture] = [0, 2, 5, 9, 14];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.CaptionedPictures] = [1, 5, 9];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.BendingPictureCaption] = [0, 2];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.PictureFrame] = [0, 1, 2];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.BendingPictureSemiTransparentText] = [0, 2, 4];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.BendingPictureBlocks] = [0, 2, 4];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.BendingPictureCaptionList] = [0, 2, 4];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.TitledPictureBlocks] = [0, 3, 6];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.PictureGrid] = [1, 3, 5, 7];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.PictureAccentBlocks] = [0, 2, 4];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.PictureStrips] = [1, 3, 5];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.ThemePictureAccent] = [0, 3, 6, 9, 12, 15];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.ThemePictureGrid] = [0, 3, 5, 7, 9];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.ThemePictureAlternatingAccent] = [0, 2, 4];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.TitledPictureAccentList] = [1, 3];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.AlternatingPictureBlocks] = [1, 3, 5];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.AscendingPictureAccentProcess] = [11, 13];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.AlternatingPictureCircles] = [1, 5, 9];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.TitlePictureLineup] = [1, 5, 9];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.PictureLineup] = [0, 3, 6];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.FramedTextPicture] = [0];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.HexagonCluster] = [2, 6, 10];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.BubblePictureList] = [2, 4, 8];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.CirclePictureHierarchy] = [5, 7, 9, 11, 13, 15];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.HorizontalPictureList] = [1, 3, 5];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.ContinuousPictureList] = [1, 3, 5];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.VerticalPictureList] = [1, 3, 5];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.VerticalPictureAccentList] = [1, 3, 5];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.BendingPictureAccentList] = [2, 5, 8];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.PictureAccentList] = [2, 5, 8];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.PictureAccentProcess] = [0, 3, 6];
oAnswersSmartArtWithPlaceholders[Asc.c_oAscSmartArtTypes.PictureOrganizationChart] = [5, 7, 9, 11, 13];
QUnit.test("Test smartarts with image placeholders", function (assert)
{
function compareResultArray(nSmartArtType)
{
const arrAnswers = oAnswersSmartArtWithPlaceholders[nSmartArtType];
const arrResult = [];
const oSmartArt = getSmartArtByType(nSmartArtType);
const arrSpTree = oSmartArt.spTree[0].spTree;
for (let i = 0; i < arrSpTree.length; i += 1)
{
const oShape = arrSpTree[i];
if (oShape.isActiveBlipFillPlaceholder())
{
arrResult.push(i);
}
}
assert.deepEqual(arrResult, arrAnswers, 'Check answers for smartart with image placeholders. ' + nSmartArtType + ' nType');
}
for (let i = 0; i < arrSmartArtTypesWithImagePlaceholders.length; i++)
{
const nSmartArtType = arrSmartArtTypesWithImagePlaceholders[i];
compareResultArray(nSmartArtType);
}
});
}
});